#ruby-on-rails #ruby #erb
#ruby-on-rails #ruby #erb
Вопрос:
У меня есть частичное подобное:
<% office.map do |o| %>
<input id='city' name='company[company_office][0][city]' value=.... type='text' />
<% end %>
Как я могу вставить значение типа o.office
в атрибут? value="#{o.office}"
не работает.
Ответ №1:
<% office.map do |o| %>
<input id='city' name='company[company_office][0][city]' value='<%= o.office %>' type='text' />
<% end %>
или вы могли бы использовать для этого помощники формы
Комментарии:
1. нет, помощники формы, которые я не могу использовать, потому что у меня есть определенное имя. Большое спасибо, я не знаю, хочу ли я писать кавычки)
2. что вы имеете в виду под конкретным именем? кроме того, не рекомендуется переходить к циклу и создавать входные данные с одинаковым идентификатором. вы должны сделать свой идентификатор и имя динамическими.
Ответ №2:
Используйте встроенные теги ruby (erb),
<%= o.office %>
Единственный раз, когда вы бы использовали #{o.office}
, это когда вы не используете erb. Например, в вспомогательном методе, и вы хотите использовать свой ruby в строке. Но когда вы находитесь в html.erb
файле, вы должны использовать теги erb.
Комментарии:
1. <%= content_tag :ввод, :id => «город», :name => «компания [company_office] [0][город]», :value => «#{o.office}», :type => «текст» %> Я полагаю, можно было бы сделать это таким образом.
2.Согласен с ответами, за которые проголосовали лучшие.
<%= o.office %>
Просто хотел добавить, что новичкам важно распознавать различия между тегами erb со знаком равенства и без него. тег<%= ... %>
versus<% ... %>
со знаком равенства указывает, что вложенный код является выражением и отображает код в виде строки. Используется для встраивания строки кода в шаблон для отображения содержимого переменной. Теги без знака равенства обычно используются для включения циклов / условной логики в Ruby.