Ruby on rails 在rails中使用helper方法向HAML标记添加动态属性

Ruby on rails 在rails中使用helper方法向HAML标记添加动态属性,ruby-on-rails,haml,Ruby On Rails,Haml,所以我想出了一个方法,但是有没有更简单的方法呢? 我只想在第%th个标记后面添加.class,如果params[:sort]==sortBy,我真的需要在helper方法中包含HAML的其余部分吗 这是my helper.rb文件中的my helper方法: def yellow?(sortBy,name,id) haml_tag :th, class: "#{'hilite' if params[:sort]== sortBy}" do haml_concat link_to na

所以我想出了一个方法,但是有没有更简单的方法呢? 我只想在第%th个标记后面添加.class,如果params[:sort]==sortBy,我真的需要在helper方法中包含HAML的其余部分吗

这是my helper.rb文件中的my helper方法:

def yellow?(sortBy,name,id)
  haml_tag :th, class: "#{'hilite' if params[:sort]== sortBy}" do
    haml_concat link_to name, movies_path(sort: sortBy),{:id => id}
  end
end
这是我的HAML文件:

%tr
  - yellow?("title","Movie Title","title_header")
  %th Rating

您是否尝试过此解决方案:

%tr
  %th{ :class => if params[:sort] == 'sortBy' then 'hilite' end }
    = link_to "Movie Title", movies_path(:sort => 'title'), :id => "title_header"
  %th Rating

您可以将此语句移动:
如果参数[:sort]='sortBy',则将'hilite'结束
移动到帮助器。看看我类似的回答:。

你也可以这样做:

app/helpers/some_helper.rb app/views/some.html.haml 我使用这种方法创建了一个span_field_opts助手,通过引导类模拟禁用的字段:

def span_field_opts
  { class: "form-control cursor-none", disabled: true }
end

参考资料:

谢谢,这是一个更好的解决方案!这和我想要的一样。感谢
%tr
  %th{ hilite }
    = link_to "Movie Title", movies_path(:sort => 'title'), :id => "title_header"
  %th Rating
def span_field_opts
  { class: "form-control cursor-none", disabled: true }
end