I'm currently learning React and Redux and feel a pulling towards learning the MERN stack. But my curiosity in React/Rails is also in there. Any experiences? Opinions? Wise-cracks?
As everyone has praised react-rails gem it is a very good point to start, but if you plan to use real power of npm and react ecosystem you may want to look into https://github.com/shakacode/react_on_rails.
It gives you helper components like react-rails but also gives you a parallel build pipeline via webpack.
I hope this helps.
Although I don't have any experience with Rails, I have heard good things about the ruby gem react-rails. Quoting from their GitHub page, it can :
I suggest you check out the repo as it has a lot to offer!
Rails is the framework which we use in most of our projects and, according to our experience, React and Rails work well together.
Lorefnon
Open Web Enthusiast
Integrating Rails and React may be a good idea if most of your business logic resides on the backend and sharing code across client and server is not particularly beneficial. Rails stack provides you with great ORMs (for both SQL and NoSQL databases) and gems to simplify repetitive things (authentication, authorization, permission systems, user management, auditing etc.) and has good tooling around strong cohesive conventions.
While I work on node full time now, I miss the strong focus on conventions in the Ruby community.
Solutions are react-rails (which integrate React in Rails asset pipeline) are great if either you are already using sprockets extensively or need to use React only in specific parts of your application.
If instead you are starting out with a new React+Redux/Flux application where most or all the frontend is managed through React, I would recommend you to use javascript based toolchains (Webpack or browserify) for managing your frontend assets and using Rails for the backend API only and not using the view layer or asset pipeline at all. Rails API makes this a lot easier. For server side rendering hypernova by Airbnb is a great solution.