Code Monkey home page Code Monkey logo

rails_react_boilerplate's Introduction

README

Steps followed to create this boilerplate

  1. run rails new rails_react_boilerplate -d=postgresql --webpack=react --skip-coffee

  2. add lines to config/database.yml below line 19 (under the default database):

username: postgres
password: <%= ENV['RAILS_REACT_BOILERPLATE_DATABASE_PASSWORD'] %>
  1. run export RAILS_REACT_BOILERPLATE_DATABASE_PASSWORD="<your_postgres_password>" && rails db:create

  2. run rails g controller Homepage index && rm app/helpers/homepage_helper.rb app/assets/stylesheets/homepage.scss and replace line 2 from config/routes.rb file with root 'homepage#index'

  3. run mv app/javascript/packs/hello_react.jsx app/javascript/packs/Index.jsx

  4. add lines to app/views/layouts/application.html.erb after line 9 (inside header):

<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<%= javascript_pack_tag 'Index' %>
  1. remove all content from app/views/homepage/index.html.erb

  2. run yarn add react-router-dom

  3. create file app/javascript/components/Example.jsx with the following content:

import React from 'react'

const Example = props => (
  <div>This is an example!</div>
)

export default Example
  1. create file app/javascript/routes/Index.jsx with the following content:
import React from "react";
import { BrowserRouter as Router, Route, Switch } from "react-router-dom";
import Example from "../components/Example";

export default (
  <Router>
    <Switch>
      <Route path="/example" exact component={Example} />
    </Switch>
  </Router>
);
  1. create file app/javascript/components/App.jsx with the following content:
import React from "react";
import Routes from "../routes/Index";

export default props => <>{Routes}</>;
  1. replace file app/javascript/components/App.jsx content with the following content:
import React from 'react'
import ReactDOM from 'react-dom'
import App from '../components/App'

document.addEventListener('DOMContentLoaded', () => {
  ReactDOM.render(
    <App/>,
    document.body.appendChild(document.createElement('div')),
  )
})
  1. add this line to config/routes.rb file:
get '/*path' => 'homepage#index'

Based on: https://www.digitalocean.com/community/tutorials/how-to-set-up-a-ruby-on-rails-project-with-a-react-frontend

rails_react_boilerplate's People

Contributors

dependabot[bot] avatar isabarros avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.