rails個人的疑問点・解説まとめ
ルーティング
ルーティングはconfigディレクトリ以下のroutes.rbで行う rootメソッド利用して、 コントローラー名♯アクション名 を指定するとトップページに対するアクションを指定できる。
コントローラー
app/controlelr以下に設定 コントローラークラスのパブリックメソッドをアクションと呼ぶ
フラッシュ アクションとアクションの間で情報を受け渡す機能
テンプレート
<% %> で囲まれた部分はrubyのコードして認識される
レイアウトテンプレート
全体の枠となる app/view/layoutsの下に置く
メソッド等
content_tag(tag,content)
resources
自動的にRESTfulなルーティングを作成
generator
rails g controller rails generate controller NAME [action action] [options] コントローラーとビューを作成する
form_for
form_for(@user) do |f|
「フォームのactionは/usersというURLへのPOSTである」と自動的に判断する。 POSTの場合、users#createアクションが指定される! @userはどこからきた?
findとfind_by
findはidを用いてデータを取得する。id以外は使用できない。 該当データがない場合、ActiveRecord::RecordNotFoundが返ってくる。 find_byはid以外の条件でも検索可能で、該当データがない場合はnilが返ってくる。 データがない場合を想定する際にはfind_byを使う。
疑問点
paramsとは何か URLから送られてきた値やフォームで入力した値をparams[:パラメータ名]で取得する
messages_urlとは何か リンクのためのメソッド群の1つ prefix+path で prefix+urlはリダイレクトの場合用いる
link_toの詳細 link_to 表示文字列, リンク先 link_to(文字列, パス [, オプション, HTMLオプション])
form_forについて
class MessagesController < ApplicationController def index @messages = Message.all end
これで何をしている?
yieldについて
renderとredirectの違い redirect_toは新たにHTTPRequestを呼び出す(getのみ)指定したアクション(controllerの中のメソッド) renderは指定したviewのhtmlを表示する
redirect_toのurlは何を指定している?
redeirect_to root_url redirect_to :new redirect_to 'new' 何が違う? まず、リンク先にモデルを渡すと、showアクションが呼ばれる redirect_to :newというのはある? render :newの場合は、newのviewにレンダリングする。
<%= f.label :password, 'password' %>
の:passwordと 'password'は何を表している?