铁路ERB。如何将“类”添加到form.select做循环?

时间:2019-05-07 00:39:43

标签: ruby-on-rails

我想添加类“浏览器默认值”,因为materializecss被chrome发布的新javascript更新破坏了。我不知道。

<%= f.label :physician_id, "Referring Physician Name", :class => "black-text" %><br>
  <%= f.select(:physician_id) do %> ```<=== ADD CLASS TO THIS
    <% @facility.order(facilityname: :asc).each do |facility| -%>
      <% facility.physician.order(lastname: :asc).each do |physician| -%>
         <%= content_tag(:option, physician.lastname + ", " + physician.firstname + " " + physician.title + " ["+physician.user.facilityname + "]", value: physician.id) %>
        <% end %>
    <% end %>
<% end %>

1 个答案:

答案 0 :(得分:1)

该方法定义为:

select(object, method, choices = nil, options = {}, html_options = {}, &block)

因此,您有一个对象(:physician_id),然后只有一个对象-一个块。您还需要另外两个参数来传递options参数,也就是可以声明元素将采用的类的时间。

为此:

<%= f.select(:physician_id, {}, {}, { class: 'any-class' }) do %>

会工作的。


其他

  • 在可能的情况下,使用{ key: :value }创建哈希值(而不是{:key =>:value})。
  • 不需要
  • -%>。只是%>有用。
  • 未指定(order时,默认order(:facilityname)升序。
  • 使用插值而非串联。

所以:

<%= f.label :physician_id, 'Referring Physician Name', class: 'black-text' %><br>
  <%= f.select(:physician_id) do %>
    <% @facility.order(:facilityname).each do |facility| %>
      <% facility.physician.order(:lastname).each do |physician| %>
         <%= content_tag(:option, "#{physician.lastname}, #{physician.firstname} #{physician.title} [#{physician.user.facilityname}]", value: physician.id) %>
        <% end %>
    <% end %>
<% end %>