railsレイアウトとビュー

2056 ワード

レンダー順序と継承(Render Order and Inherit)
ページをレンダリングするときにテンプレートを使用
railsではlayoutを指定することで、異なるコントローラで使用するレイアウトファイルを設定することができる.明示的に指定されていない場合、フレームワークはlayoutフォルダの下で現在のコントローラと同じ名前のファイルが存在するかどうかを優先し、存在しない場合はデフォルトでアプリケーションを使用します.html.erb
レンダービュー(Render View)
ビューレンダリングを行うとき、actionの名前に基づいて対応するviewsディレクトリでactionを検索します.html.Erbは、renderメソッドにパラメータを指定することで、レンダリングされたビューファイルを設定できます.
def update
  @user = User.find(params[:id])
  if @user.update(user_params)
    redirect_to(@book)
  else
    render 'edit'
  end
end

updateの呼び出しに失敗すると、updateアクションは同じコントローラのeditをレンダリングします.html.Erbテンプレート
他のコントローラのactionテンプレートをレンダリングする場合は、renderのパラメータを「controller_name/action_name'の方式が実現する.次のようになります.
render 'user/login' #    app/views/user/login.html.erb

マルチレンダリングの防止
renderの場合、1つのactionに複数のrenderがエラーを引き起こす場合は、and returnを使用して解決することをお勧めします.次のようになります.
def show
  @user = User.find(params[:id])
  if @user.blank?
    render text: '       ' and return
  end
  render json: @user
end

リダイレクト
redirect_to指定されたアドレスにリダイレクト
redirect_backは前のページに戻ります
renderとredirectの違い、renderはレンダリングビューだけで関連actionのメソッドを実行しません、redirect_toは新しいページジャンプを実行します.
ビューレンダリング
yieldは、レンダリングされたビューがここに挿入される領域を示します.指定した領域を名前付きで挿入できます.content_と組み合わせる必要があります.for使用


  
    
  
  
     
  




      

body


ローカルビュー
ビューファイルの再利用や大きなページの分割を容易にするために、ローカルビューを用いてページを整理することができる.ローカルビューの名前が_スタート
ローカルビューをレンダリングするにはrenderメソッドを使用します.



ローカルビューにローカルレイアウトを使用することができる.ローカルレイアウトも_先頭は、ローカルビューがあるフォルダの下に配置する.ローカルレイアウトを使用する場合、renderにパラメータを指定する必要がある場合は、次のようなプロパティ名を指定します.


ローカルビューを使用するときにローカル変数を渡すことができる.のように