0
我有一個HTML模板,它應該根據控制器上的某些設置更改application.rb模板中的主體類。將控制器變量或參數傳遞給輔助模塊
我知道如何做到這一點,當我想從視圖中改變它。我這樣做是這樣的:
# in view
<% layout_class("full", boxed: false) %>
# helper method
module TemplateHelper
def layout_class(class_name="")
content_tag("body", :id => "fluidGridSystem", :class => class_name) do
yield
end
end
end
忘記上面的行!
我想使控制器
# index_controller.rb
class IndexController < ApplicationController
def index
@layout_class = "hello"
end
end
# app/helpers/template_helper.rb
module TemplateHelper
def body_wrapper
content_tag("body", :id => "fluidGridSystem", :class => @layout_class) do
if some_logiC# show <body> only
yield
else # add some more <div>'s
blog_wrapper do
yield
end
end
end
def blog_wrapper(inner="", outer="")
content_tag("div", :class => outer) do
content_tag("div", :class => inner) do
yield
end
end
end
end
end
# application.rb
<html>
<head>
</head>
<%= body_wrapper do %> # this part generates <body class="hello">
<%= flash_messages %>
<%= yield %>
<% end %> # </body>
</html>
但@layout_class
不傳遞給助手裏這種情況發生。
- 我該怎麼做?
- 或者是視圖方法更好的解決?
- 原因是我想添加breadcrumbs和依賴於控制器邏輯的body類。
喜富不會公佈的「類」屬性,我已經更新了我的發佈更好的解釋,並添加了application.html.erb部分。請檢查一下。我也刪除了你指出的錯字。我希望現在更清楚。非常感謝提前 – Jan
感謝您的更新 - 讓我看看! –