Ruby Rails 勉強日記02
今日の内容
- ルーティングのネスト
- 部分テンプレート
ルーティングのネスト
内容
ルーティングを別のルーティングに渡す
書き方
resorces :[controller名1] do resorces :[controller名2] end
結果
con1_con2 GET /[con1] /:[con1]_id/[con2](.:format) [con2]#index POST /[con1] /:[con1]_id/[con2](.:format) [con2]#create ・ ・ ・
部分テンプレート
内容
ビューで使い回しができるテンプレート
ファイル名
_[名前].html.erb
ビューでの使い方
<% render partial: "[名前]", locals { 変数名: 値 } %>
感想
詳細な使い方は調べていないので今後、調べて使ってみる
Ruby勉強日記01
今日の内容
- binding.pryでデバッグ
- kaminariでページネーション
- deviseでログイン機能
- その他
binding.pryでデバッグ
内容
Railsのコードを途中で止めて変数やらメソッドやら確認・実行できる
止めたいコードの次の行に「binding.pry」を追加すればそこで止まる
ターミナルで rails s
を実行して変数の内容とか確認
例:
5: def index 6: @model = Model.all => 7: binding.pry 8: end [6] pry(#<TweetsController>)> params => <ActionController::Parameters {"controller"=>"model", "action"=>"index"} permitted: false>
kaminariでページネーション
内容
ページネーションが簡単にできるrubyライブラリ
インストール
- Gemfileに
gem 'kaminari'
を記載 - Gemfileがあるディレクトリでターミナルで
bundle install
使い方
<モデルのインスタンス>.page(params[:page]).per(何個ごとにページネーションするか、数字)
deviseでログイン機能
内容
ログイン機能が簡単に実装できるrubyライブラリ
インストール
- Gemfileに
gem 'devise'
を記載 - Gemfileがあるディレクトリでターミナルで
bundle install
使い方
rails g devise:install
を実行
作成されるファイル
config/initializers/devise.rb
config/locales/devise.en.ymlrails g devise user
を実行
作成されるファイル
app/models/<ユーザーモデル名>.rb
db/migrate/2014XXXXXXXXXX_devise_create_users.rb
test/fixtures/users.yml
test/models/user_test.rbrake db:magirate
でDBテーブル作成user_signed_in?
でログインしているかどうか判定- prefixというルーティングのパスが入った変数が使えるのでビューで利用
prefix名の最後には「_path」をつけないと使えない rails g devise:views
でdevise用のビューを作成
作成されるファイル
app/views/devise以下のディレクトリにあるビューファイル各種
その他
before_action
コントローラーでbefore_action :メソッド名と記述することで、コントローラのアクションが実行される前にそのメソッドを実行
redirect_toメソッド
redirect_toメソッドをアクション内で利用すると、そこからさらに別のアクションを実行したり、ビューに遷移させたりできaction: :indexという形で、キーがaction:バリューが:indexであるハッシュを指定
カラムを追加するためのマイグレーションファイル作成
rails g migration Addカラム名To追加先テーブル名 追加するカラム名:型