Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use React Router on top of Rails router (not using react-rails gem)?

Now i am making React app on top off Ruby on Rails app (with out react-rails gem) by using browserify-rails to compile js files.

So i tried to us react-router to config router of the app

This is my main.js

import React from 'react'; import ReactDOM  from 'react-dom'; import { Router, Route } from 'react-router'; import { browserHistory } from 'react-router';  /*Import Component*/  import DashBoard from './components/dashboard'; import Group from './components/dashboard';  /*  *  * Routes  *  * */  var routes = (     <Router history={browserHistory}>         <Route path="/" component={DashBoard}/>         <Route path="/group" component={Group}/>     </Router> );  ReactDOM.render(routes , document.querySelector('#main')); 

But when i go to

http://my.app.dev/group 

I got

No route matches [GET] "/group" (From Rails) 

So how can i fix this and make React Router on top off Rails router?

Thanks!

like image 957
Varis Darasirikul Avatar asked Sep 14 '16 12:09

Varis Darasirikul


Video Answer


1 Answers

If you want to redirect all your request to single page, that's easy:

# config/routes.rb   root 'dash_board#index' get '*path', to: 'dash_board#index' 

If Rails will render your React components on DashBoard#index page, React's router will intercept it from there.

like image 126
EugZol Avatar answered Sep 29 '22 08:09

EugZol