This blog is a quick walkthrough of creating a Ruby On Rails application without a model.
Find Rails new options from here:
https://gist.github.com/abhilashak/3c0c62fa62b2f7a439c417b68d032575
Find Gemfile options from here:
http://bundler.io/v1.2/gemfile.html
Install Ruby/Rails using rbenv
$ touch .rbenv-gemsets
$ echo project-name > .rbenv-gemsets
$ rbenv gemset active
$ rbenv install 2.5.3
$ gem install bundler
$ rbenv rehash
$ gem install rails -v 5.2.9
$ rbenv rehash
$ rails new my-new-porject --skip-active-record --skip-bundle -v 5.2.9
Add in Gemfile:
ruby “2.5.3”
comment jbuilder, we don’t need it.
# gem 'jbuilder', '~> 2.8’
Move rbenv gems file to new rails app folder
$ mv .rbenv-gemsets my-new-porject
$ touch .ruby-version
$ echo 2.5.3 > .ruby-version
$ gem install bundler
$ bundle
$ ruby -v
ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-darwin18]
Start Rails server:
$ rails s
Gemfile add:
# Bootstrap Theme
gem 'bootstrap', '~> 4.3.0’
# Slim template Engine
gem 'slim', '>=4.0.1’
Do Bundle Install
$ bundle
Rename css to scss because we use bootsrap mixins and variables that work with scss files
$ mv app/assets/stylesheets/application.css app/assets/stylesheets/application.scss
Import Bootstrap styles in app/assets/stylesheets/application.scss:
// Custom bootstrap variables must be set or imported *before* bootstrap.
@import "bootstrap";
Then, remove all the *= require and *= require_tree statements from the Sass file. Instead, use @import to import Sass files.
Bootstrap JavaScript depends on jQuery
Add jquery-rails to Gemfile:
gem 'jquery-rails', '~> 4.3.4’
Bootstrap tooltips and popovers depend on popper.js for positioning.
Add Bootstrap dependencies and Bootstrap to your application.js:
//= require jquery3
//= require popper
//= require bootstrap-sprockets
While bootstrap-sprockets provides individual Bootstrap components for ease of debugging, you may alternatively require the concatenated bootstrap for faster compilation:
//= require jquery3
//= require popper
//= require bootstrap
Sass: Individual components
All Bootstrap opponents will be imported by default.
You can also import components explicitly. To start with a full list of modules copy _bootstrap.scss file into your assets as _bootstrap-custom.scss. Then comment out components you do not want from _bootstrap-custom. In the application Sass file, replace @import ‘bootstrap’ with:
@import 'bootstrap-custom';
Your application.css:
/*
* This is a manifest file that'll be compiled into application.css, which will include all the files
* listed below.
*
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, or any plugin's
* vendor/assets/stylesheets directory can be referenced here using a relative path.
*
* You're free to add application-wide styles to this file and they'll appear at the bottom of the
* compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
* files in this directory. Styles in this file should be added after the last require_* statement.
* It is generally better to create a new file per style scope.
*
*/
/*Custom bootstrap variables must be set or imported *before* bootstrap.
The available variables can be found:
https://github.com/twbs/bootstrap-rubygem/blob/master/assets/stylesheets/bootstrap/_variables.scss
*/
@import "bootstrap";
Your application.js File:
// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, or any plugin's
// vendor/assets/javascripts directory can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// compiled file. JavaScript code in this file should be added after the last require_* statement.
//
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
// about supported directives.
//
//= require rails-ujs
//= require turbolinks
//= require_tree .
//= require jquery3
//= require popper
//= require bootstrap-sprockets
You can check sample bootstrap forms here:
https://bootsnipp.com/snippets/featured/login-amp-signup-forms-in-panel
Remove cable.js from javascripts # we don’t need this for now