ЖЕЛЕЗНОДОРОЖНЫЕ ЕРБ.Как добавить 'class' к циклу form.select do? - PullRequest
1 голос
/ 07 мая 2019

Я хочу добавить класс «browser-default», потому что materializecss не работает с новыми обновлениями javascript, выпущенными Chrome. Я не могу понять это.

<%= 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 Ответ

1 голос
/ 07 мая 2019

Метод определяется как:

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 %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...