- 红宝石1.9.2p90
- 轨道3.1.1
如何在SLIM模板中从控制器创建html元素?
我将解释:
在我的视图中,我想根据一些条件更改"h1"html标记。
但我想把逻辑放在控制器里
case params[:controller] when "recipes", "chefs"
case params[:action] when "show", "index"
@h_number = "h2"
else
@h_number ="h1"
end
else
@h_number ="h1"
end
在我的SLIM视图中,我想要这样的东西:
= @h_number#logo
= link_to image_tag("image.png"), root_path
结果是:
<h1 id="logo"><a href="/"><img src="image.png"></a></h2>
或
<h2 id="logo"><a href="/"><img src="image.png"></a></h2>
有可能吗?
我明白了吗?对不起我的英语。
我非常怀疑这是否可能。但是你总是可以创建一个辅助方法来完成这个
在您的应用程序帮助文件中
module ApplicationHelper
def logo
num = case params[:controller] when "recipes", "chefs"
case params[:action] when "show", "index" then 2 end
end || 1
"<h#{num}>" + link_to(image_tag("image.png"), root_path) + "</h#{num}>"
end
end
在您的模板中
body
header
== logo
你的控制器不需要任何东西。