2017.07 «  - - 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - - » 2017.09
TOP > layout ファイルについて・その3【細かいオプションとか】

 ← partial パーシャルな関係【partial と object】 | TOP | layout ファイルについて・その2【レイアウトファイルの書き方】

スポンサーサイト 

--年--月--日 (--)
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


【広告】

[--.--.--(--) --:--] スポンサー広告 | Trackback(-) | Comment(-)
↑TOPへ

layout ファイルについて・その3【細かいオプションとか】 

2007年08月11日 ()
前回の例を使って更に詳しいオプションなどを説明します。

デフォルトでは、controller の名前そのままのレイアウトファイルを持ってきます。でもでも違う名前のレイアウトファイルを持ってきたい場合は、controller に layout "[レイアウトファイル名]" と指定します。

app/controllers/galileo_controller.rb ファイルでいうと、

class GalileoController < ApplicationController
  layout "galileo2"
  def intro
  end
end



これで、app/views/layouts/galileo.rhtml ファイルではなく、app/views/layouts/galileo2.rhtml ファイルを使用するようになります。

今はダブルクォーテーションで galileo2 をくくって、String 扱いにしましたが、これをシンボル扱いにすると、このシンボルと同じ名前のメソッドの戻り値と同じレイアウトファイルを読み込みなさい、というややこしいことになります。

class GalileoController < ApplicationController
  layout :which_galileo
  def intro
  end

  private
  def which_galileo
    param[:honyarara].blank? ? "galileo" : "galileo2"
  end
end



あと、このメソッドだけにレイアウトを使いたいとか、このメソッドだけにはレイアウトを使いたくないとかの指定ができます。

class GalileoController < ApplicationController
  layout "galileo2", :only => :intro1 #intro1 にだけレイアウトを使う
  def intro1
  end
  def intro2
  end
  def intro3
  end
end



class GalileoController < ApplicationController
  layout "galileo2", :except => :intro1 #intro1 にだけレイアウトを使わない
  def intro1
  end
  def intro2
  end
  def intro3
  end
end



もうちょっとだけいろいろ出来るみたいですので、気になる方は、こちらをどうぞ。

【広告】

[2007.08.11(Sat) 23:29] RubyOnRails(View・ERb)Trackback(0) | Comments(0)
↑TOPへ

 ← partial パーシャルな関係【partial と object】 | TOP | layout ファイルについて・その2【レイアウトファイルの書き方】

COMMENT

COMMENT POST















管理者にだけ表示

 ← partial パーシャルな関係【partial と object】 | TOP | layout ファイルについて・その2【レイアウトファイルの書き方】
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。