如何在 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>
有可能吗?
我清楚了吗?抱歉我的英文。答案 0 :(得分:3)
我非常怀疑这是可能的。但是你总是可以创建一个辅助方法来完成这个
在您的应用程序帮助文件中,
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
你的控制器不需要任何东西。