У меня есть вид на мой текущий проект, который делает что-то вроде следующего (в хамле):
-@horses.each do |horse|
= render :partial => 'main/votingbox', :locals => {:horse => horse}
В файле _votingbox.html.haml у меня есть следующее:
%div.votingbox
%span.name= horse.name
%div.genders
- if horse.male
%img{:src => 'images/male.png', :alt => 'Male'}
- if horse.female
%img{:src => 'images/female.png', :alt => 'Female'}
%div.voting_form
= form_for(Vote.new, {:url => horse_vote_path(horse)}) do |f|
= f.label :comment, "Your opinion"
= f.text_field :comment
...
a bunch of labels and input elements follow generated using the form helpers
Это сгенерирует рабочий код, но он генерирует формы с одинаковыми идентификаторами для всех элементов формы, что делает HTML недействительным, когда частичное поле голосования отображается во второй раз.
Мое первое предположение об исправлении этогодолжен был указать уникальный: id для form_for, но это относится только к тегу формы, сгенерированному form_for, а не к любому из тегов внутри блока form_for.
Одно определенное решение этой проблемы - пройти и вручную определитьмои собственные уникальные идентификаторы на form_for и все элементы формы, которые я использую.Это больше работы, чем я рассчитывал.
Есть ли более простой или понятный способ получения уникальных идентификаторов в формате, аналогичном тому, который в настоящее время Rails генерирует их для всех моих элементов формы?