我的應用程序/視圖/佈局文件看起來是這樣的:爲某些操作設置佈局?
application.html.erb
user_sessions.html.erb
errors.html.erb
這些做工精細和我有他們,但ID沒有問題,現在想添加一個新的佈局技巧,但是隻在指數顯示行動。
「tips.index.html.erb」會起作用嗎?
我的應用程序/視圖/佈局文件看起來是這樣的:爲某些操作設置佈局?
application.html.erb
user_sessions.html.erb
errors.html.erb
這些做工精細和我有他們,但ID沒有問題,現在想添加一個新的佈局技巧,但是隻在指數顯示行動。
「tips.index.html.erb」會起作用嗎?
添加一個新的佈局,只要你喜歡被稱爲「tips.html.erb」
在提示控制器添加以下內容:
layout "tips", :only => [ :index, :show ]
您可以使用特定的動作指定佈局:
def new
render(:layout => "layouts/application")
end
我從來沒有嘗試過在控制器中使用多個佈局聲明。這可能是添加另一
layout "standard", :only => [ :new, :edit ]
可能工作...
如果你想在控制器中使用多個佈局,使用下面的代碼:(ACTION_NAME是一個預先定義的變量,你可以使用直接在Rails)的
class OrdersController < BaseController
layout :determine_layout
private
def determine_layout
%w(new).include?(action_name) ? "some_layout" : "public"
end
end
使用新建/編輯使用沒有佈局文件。 – Arcath
我已經更新了我的答案 - 希望工程! – dtt101
值得一提的是,您不能在 控制器中多次調用'layout',因爲只有最後一次調用將被評估。相反(至少在rails 4中至少爲 ),你可以調用'layout'傳遞一個方法的符號。然後該方法可以動態地返回不同的模板名稱 。請參閱 [layout](http://api.rubyonrails.org/classes/AbstractController/Layouts/ClassMethods.html#method-i-layout)。 –