我的问题关于Rails + HAML
我想有条件地将类属性设置为HTML标记。我发现最好的方法是设置控制器变量,用于设置相应HTML标记的类。
我找到谷歌搜索的唯一解决方案告诉我在HAML中使用条件。但我不认为这是最好的方法,因为Views不应该有任何逻辑控制。
那么,我怎么能直接从控制器那里做到这一点?哪些控制器变量可以设置一个html标签的类?
答案 0 :(得分:1)
您无法控制来自控制器的html标记,视图就是为此目的。 如果您不想创建单独的帮助程序(这对您的要求太多),请使用rails附带的现有tag帮助程序。它接受一个选项哈希,如果你愿意,可以从你的控制器初始化。
但是,我再次寻求帮助。
答案 1 :(得分:1)
对于简单逻辑(如设置类),您可以使用haml_tag将类属性值公开为字符串:
- haml_tag :th, class: "#{'hilite' if params[:order_by]=='title'}" do
- haml_concat link_to 'Movie Title', movies_path(order_by: 'title')
这样你在视图中仍然有条件逻辑,但在这种情况下求助于帮助可能是一种过度杀伤。
答案 2 :(得分:0)
如果您不想在haml模板中使用逻辑,那么您应该将其移动到帮助程序中。控制器真的没办法为特定的html标签设置类;这不是控制器的用途。