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'は何を表している?