Building A Hello World App In Ruby On Rails App
Installing Rails
Using the RubyGems package manager, we can install all rails dependencies with one command.
$ sudo gem install rails -v 5.0.0
...
29 gems installed
Create the rails app structure
Using rails new
command creates the skeleton for each rails app.
$ mkdir rails_helloworld $ cd rails_helloworld rails_helloworld$ rails _5.0.0_ new hello_app create create README.md create Rakefile create config.ru create .gitignore create Gemfile create app create app/assets/config/manifest.js create app/assets/javascripts/application.js create app/assets/javascripts/cable.js create app/assets/stylesheets/application.css create app/channels/application_cable/channel.rb create app/channels/application_cable/connection.rb create app/controllers/application_controller.rb create app/helpers/application_helper.rb create app/jobs/application_job.rb create app/mailers/application_mailer.rb create app/models/application_record.rb create app/views/layouts/application.html.erb create app/views/layouts/mailer.html.erb create app/views/layouts/mailer.text.erb create app/assets/images/.keep create app/assets/javascripts/channels create app/assets/javascripts/channels/.keep create app/controllers/concerns/.keep create bin create bin/bundle create bin/rails create bin/rake create bin/setup create bin/update create config create config/routes.rb create config/application.rb create config/environment.rb create config/secrets.yml create config/cable.yml create config/puma.rb create config/spring.rb create config/environments create config/environments/development.rb create config/environments/production.rb create config/environments/test.rb create config/initializers create config/initializers/application_controller_renderer.rb create config/initializers/assets.rb create config/initializers/backtrace_silencers.rb create config/initializers/cookies_serializer.rb create config/initializers/cors.rb create config/initializers/filter_parameter_logging.rb create config/initializers/inflections.rb create config/initializers/mime_types.rb create config/initializers/new_framework_defaults.rb create config/initializers/session_store.rb create config/initializers/wrap_parameters.rb create config/locales create config/locales/en.yml create config/boot.rb create config/database.yml create db create db/seeds.rb create lib create lib/tasks create lib/tasks/.keep create lib/assets create lib/assets/.keep create log create log/.keep create public create public/404.html create public/422.html create public/500.html create public/apple-touch-icon-precomposed.png create public/apple-touch-icon.png create public/favicon.ico create public/robots.txt create test/fixtures create test/fixtures/.keep create test/fixtures/files create test/fixtures/files/.keep create test/controllers create test/controllers/.keep create test/mailers create test/mailers/.keep create test/models create test/models/.keep create test/helpers create test/helpers/.keep create test/integration create test/integration/.keep create test/test_helper.rb create tmp create tmp/.keep create tmp/cache create tmp/cache/assets create vendor/assets/javascripts create vendor/assets/javascripts/.keep create vendor/assets/stylesheets create vendor/assets/stylesheets/.keep remove config/initializers/cors.rb run bundle install Fetching gem metadata from https://rubygems.org/........... Fetching version metadata from https://rubygems.org/... Fetching dependency metadata from https://rubygems.org/.. Resolving dependencies................................................. Using rake 11.2.2 Using concurrent-ruby 1.0.2 Using i18n 0.7.0 Using minitest 5.9.0 Using thread_safe 0.3.5 Using builder 3.2.2 Using erubis 2.7.0 Using mini_portile2 2.1.0 Using pkg-config 1.1.7 Using rack 2.0.1 Using nio4r 1.2.1 Using websocket-extensions 0.1.2 Using mime-types-data 3.2016.0521 Using arel 7.1.1 Using bundler 1.11.2 Using byebug 9.0.5 Using coffee-script-source 1.10.0 Using execjs 2.7.0 Using method_source 0.8.2 Using thor 0.19.1 Using debug_inspector 0.0.2 Using ffi 1.9.14 Using multi_json 1.12.1 Using rb-fsevent 0.9.7 Using puma 3.6.0 Using sass 3.4.22 Using tilt 2.0.5 Using spring 1.7.2 Using sqlite3 1.3.11 Using turbolinks-source 5.0.0 Using tzinfo 1.2.2 Using nokogiri 1.6.8 Using rack-test 0.6.3 Using sprockets 3.7.0 Using websocket-driver 0.6.4 Using mime-types 3.1 Using coffee-script 2.4.1 Using uglifier 3.0.1 Using rb-inotify 0.9.7 Installing turbolinks 5.0.1 Using activesupport 5.0.0 Using loofah 2.0.3 Using mail 2.6.4 Using listen 3.0.8 Using rails-dom-testing 2.0.1 Using globalid 0.3.7 Using activemodel 5.0.0 Installing jbuilder 2.6.0 Using rails-html-sanitizer 1.0.3 Installing spring-watcher-listen 2.0.0 Using activejob 5.0.0 Using activerecord 5.0.0 Using actionview 5.0.0 Using actionpack 5.0.0 Using actioncable 5.0.0 Using actionmailer 5.0.0 Using railties 5.0.0 Using sprockets-rails 3.1.1 Installing coffee-rails 4.2.1 Installing jquery-rails 4.1.1 Installing web-console 3.3.1 Using rails 5.0.0 Installing sass-rails 5.0.6 Bundle complete! 15 Gemfile dependencies, 63 gems now installed. Use `bundle show [gemname]` to see where a bundled gem is installed. run bundle exec spring binstub --all * bin/rake: spring inserted * bin/rails: spring inserted
The command rails new
automatically runs bundle install
after creating the following directories and files:
. βββ hello_app βββ app βΒ Β βββ assets βΒ Β βΒ Β βββ config βΒ Β βΒ Β βΒ Β βββ manifest.js βΒ Β βΒ Β βββ images βΒ Β βΒ Β βββ javascripts βΒ Β βΒ Β βΒ Β βββ application.js βΒ Β βΒ Β βΒ Β βββ cable.js βΒ Β βΒ Β βΒ Β βββ channels βΒ Β βΒ Β βββ stylesheets βΒ Β βΒ Β βββ application.css βΒ Β βββ channels βΒ Β βΒ Β βββ application_cable βΒ Β βΒ Β βββ channel.rb βΒ Β βΒ Β βββ connection.rb βΒ Β βββ controllers βΒ Β βΒ Β βββ application_controller.rb βΒ Β βΒ Β βββ concerns βΒ Β βββ helpers βΒ Β βΒ Β βββ application_helper.rb βΒ Β βββ jobs βΒ Β βΒ Β βββ application_job.rb βΒ Β βββ mailers βΒ Β βΒ Β βββ application_mailer.rb βΒ Β βββ models βΒ Β βΒ Β βββ application_record.rb βΒ Β βΒ Β βββ concerns βΒ Β βββ views βΒ Β βββ layouts βΒ Β βββ application.html.erb βΒ Β βββ mailer.html.erb βΒ Β βββ mailer.text.erb βββ bin βΒ Β βββ bundle βΒ Β βββ rails βΒ Β βββ rake βΒ Β βββ setup βΒ Β βββ spring βΒ Β βββ update βββ config βΒ Β βββ application.rb βΒ Β βββ boot.rb βΒ Β βββ cable.yml βΒ Β βββ database.yml βΒ Β βββ environment.rb βΒ Β βββ environments βΒ Β βΒ Β βββ development.rb βΒ Β βΒ Β βββ production.rb βΒ Β βΒ Β βββ test.rb βΒ Β βββ initializers βΒ Β βΒ Β βββ application_controller_renderer.rb βΒ Β βΒ Β βββ assets.rb βΒ Β βΒ Β βββ backtrace_silencers.rb βΒ Β βΒ Β βββ cookies_serializer.rb βΒ Β βΒ Β βββ filter_parameter_logging.rb βΒ Β βΒ Β βββ inflections.rb βΒ Β βΒ Β βββ mime_types.rb βΒ Β βΒ Β βββ new_framework_defaults.rb βΒ Β βΒ Β βββ session_store.rb βΒ Β βΒ Β βββ wrap_parameters.rb βΒ Β βββ locales βΒ Β βΒ Β βββ en.yml βΒ Β βββ puma.rb βΒ Β βββ routes.rb βΒ Β βββ secrets.yml βΒ Β βββ spring.rb βββ config.ru βββ db βΒ Β βββ seeds.rb βββ Gemfile βββ Gemfile.lock βββ lib βΒ Β βββ assets βΒ Β βββ tasks βββ log βββ public βΒ Β βββ 404.html βΒ Β βββ 422.html βΒ Β βββ 500.html βΒ Β βββ apple-touch-icon.png βΒ Β βββ apple-touch-icon-precomposed.png βΒ Β βββ favicon.ico βΒ Β βββ robots.txt βββ Rakefile βββ README.md βββ test βΒ Β βββ controllers βΒ Β βββ fixtures βΒ Β βΒ Β βββ files βΒ Β βββ helpers βΒ Β βββ integration βΒ Β βββ mailers βΒ Β βββ models βΒ Β βββ test_helper.rb βββ tmp βΒ Β βββ cache βΒ Β βββ assets βββ vendor βββ assets βββ javascripts βββ stylesheets 45 directories, 57 files
bundle install
reads the content of ruby_helloworld/Gemfile
and install each dependency.
Serve pages in development
Running rails server
launches a server for development purposes on http://localhost:3000
rails_helloworld$ rails server
=> Booting Puma
=> Rails 5.0.0 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.6.0 (ruby 2.3.1-p112), codename: Sleepy Sunday Serenity
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://localhost:3000
Use Ctrl-C to stop
Opening the address http://localhost:3000
will show up rails
homescreen:
Started GET "/" for 127.0.0.1 at 2016-08-07 18:58:25 -0300 Processing by Rails::WelcomeController#index as HTML Parameters: {"internal"=>true} Rendering /var/lib/gems/2.3.0/gems/railties-5.0.0/lib/rails/templates/rails/welcome/index.html.erb Rendered /var/lib/gems/2.3.0/gems/railties-5.0.0/lib/rails/templates/rails/welcome/index.html.erb (8.7ms) Completed 200 OK in 41ms (Views: 18.7ms | ActiveRecord: 0.0ms)
Creating the Hello World page
Routing
Edit the controller app/controllers/routes.rb
that handles the homepage with the action hello
to retrieve Hello World
.
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
def hello
render html: "hello, world!"
end
end
Adding controller action
Add the route that will handle the access to the /
url with root:controller#action
.
Rails.application.routes.draw do
root 'application#hello'
end
- The Idiomatically Correct Way To Make An Instance Of A Many To One Relationship ModelAugust 18, 2016
- Simple Debugging In RailsAugust 12, 2016
- Common Steps To Start A Rails ProjectAugust 8, 2016
- Building A Hello World App In Ruby On Rails App
- Ruby On Rails OverviewAugust 7, 2016
Articles
Except as otherwise noted, the content of this page is licensed under CC BY-NC-ND 4.0 . Terms and Policy.
Powered by SimpleIT Hugo Theme
·