0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【自己学習】Railsチュートリアル第一章

Last updated at Posted at 2020-06-22

##[Rails]Railsチュートリアル第一章から始める

改めてRailsチュートリアルを学習したいと思いたっため学習する。

Railsチュートリアル
https://railstutorial.jp/chapters/beginning?version=5.1

最終的には「Rails 5 技術者認定ベーシック試験」を取得する。
そのため定期的に自作の問題を作成して理解度を高める。

使用環境は以下で行う

Rails 5.1.6
Ruby 2.3.0

AWS cloud9は使用せず実装する。

1.Railsプロジェクトで使うenvironmentディレクトリを作成する

$ cd                  # ホームディレクトリに移動する
$ mkdir environment     # 'environment' ディレクトリを作成する
$ cd environment/       # 'environment' ディレクトリに移動する

※基本的なunixコマンドは省略

2.rails newを実行する (バージョン番号を指定して新規プロジェクト作成)

$ cd ~/environment
$ rails _5.1.6_ new hello_app

ちなみに初めから別のRailsバージョンが入っている場合は、gemでエラーが発生する場合がある。
例えばこんなnokogiriのエラー

Errno::EACCES: Permission denied @ dir_s_mkdir -
.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/extensions/x86_64-darwin-18/2.3.0-static/nokogiri-1.10.9
An error occurred while installing nokogiri (1.10.9), and Bundler
cannot continue.
Make sure that `gem install nokogiri -v '1.10.9' --source
'https://rubygems.org/'` succeeds before bundling.

なるほどバージョンが合っていない。
以下でinstallしよう。

gem install nokogiri -v '1.10.9' --source
'https://rubygems.org/'

OK-正常であれば新規にプロジェクトができる。

3.Bundler

Gemfileの設定を行う
sqlite3 gemをdevelopment環境とtest環境 (7.1.1) だけで使う (つまりproduction環境では使わない) ように変更している点が重要。
後でHerokuで使うデータベースと競合する可能性を防ぐため

group :development, :test do
  gem 'sqlite3',      '1.3.13'
  gem 'byebug', '9.0.6', platform: :mri
end

group :development do
  gem 'web-console',           '3.5.1'
  gem 'listen',                '3.1.5'
  gem 'spring',                '2.0.2'
  gem 'spring-watcher-listen', '2.0.1'
end

リストを置き換えたら以下のコマンドで bundle install

$ cd hello_app/
$ bundle install

※ちなみにgemでエラーになる時はその都度で調べる。

Errno::EACCES: Permission denied @ dir_s_mkdir -

が発生した時は下記で対応できた。
https://qiita.com/katsu105/items/9d71fa619cf5102c45d3
権限が違う時がある。

演習

  • Rubyのバージョンは ruby -vでバージョンを確認できる。
  • Railsのバージョンはrails -vでバージョンを確認できる。

4 Model-View-Controller (MVC)

「models」「views」「controllers」(MVC)の3つの要素がある

Railsアプリと通信する際、ブラウザは一般的にWebサーバーにリクエスト (request) を送信し、これはリクエストを処理する役割を担っているRailsのコントローラ (controller) に渡されます。コントローラは、場合によってはすぐにビュー (view) を生成してHTMLをブラウザに送り返します。動的なサイトでは、一般にコントローラは (ユーザーなどの) サイトの要素を表しており、データベースとの通信を担当しているRubyのオブジェクトであるモデル (model) と対話します。モデルを呼び出した後、コントローラは、ビューを描画し、完成したWebページをHTMLとしてブラウザに返します。

5 Hello, world!

Applicationコントローラにhelloを追加する。
app/controllers/application_controller.rb

def helloを追加してrender htmlで文字列を返す。

class ApplicationController < ActionController::Base
  protect_from_forgery with: :exception

  def hello
    render html: "hello, world!"
  end
end

ルートルーティングを設定する
config/routes.rb

Rails.application.routes.draw do
  root 'application#hello'
end

これで先ほど設定したhello, world!が表示される。
rails sでサーバーを起動して確認。

演習
1.helloアクションを書き換え、「hello, world!」の代わりに「hola, mundo!」と表示
=> 文字列をhola, mundo!に変更する。
2.Railsでは「非ASCII文字」もサポートされています。
=>「非ASCII文字」もサポート
3.helloアクションを参考にして、2つ目のアクションgoodbyeを追加しましょう。このアクションは、「goodbye, world!」というテキストを表示します。リスト 1.9のルーティングを編集して、ルートルーティングの割り当て先をhelloアクションからgoodbyeアクションに変更する。

6 Gitによるバージョン管理

gitは試験範囲外、飛ばす

7 Bitbucket

Bitbucketは飛ばす
GitHubとBitbucketは、Gitリポジトリを扱う2つの著名なサービス

まとめ

Ruby on Railsとは、Web開発のためのフレームワークであり、Rubyプログラミング言語によって記述されている。

Railsにはrailsという名前のコマンドラインコマンドがあり、rails newで新しいアプリケーションを生成したり、rails serverでローカルサーバーを実行したりできる。

コントローラのアクションを追加したり、ルートルーティングを変更したりするだけで「hello, world」アプリケーションを作成できる。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?