【发布时间】:2010-02-06 21:39:27
【问题描述】:
在我的rap lyrics explanation site的首页,有一个地方可以让用户尝试解释一个具有挑战性的行:
alt text http://dl.dropbox.com/u/2792776/screenshots/2010-02-06_1620.png
这是我用来生成这个的部分:
<div class="stand_alone annotation" data-id="<%= annotation.id %>">
<%= song_link(annotation.song, :class => :title) %>
<span class="needs_exegesis"><%= annotation.referent.strip.gsub(/\n/, "\n <br />") %></span>
<% form_for Feedback.new(:annotation_id => annotation.id, :created_by_id => current_user.try(:id), :email_address => current_user.try(:email)), :url => feedback_index_path, :live_validations => true do |f| %>
<%= f.hidden_field :annotation_id %>
<%= f.hidden_field :created_by_id %>
<p style="margin-top: 1em">
<%= f.text_area :body, :rows => 4, :style => 'width:96%', :example_text => "Enter your explanation" %>
</p>
<p>
<% if current_user %>
<%= f.hidden_field :email_address %>
<% else %>
<%= f.text_field :email_address, :example_text => "Your email address" %>
<% end %>
<%= f.submit "Submit", :class => :button, :style => 'margin-left: .1em;' %>
</p>
<% end %>
</div>
但是,在单个页面上放置多个这些是有问题的,因为 Rails 会自动为每个表单分配一个 ID new_feedback,并为每个字段分配一个类似 feedback_body 的 ID(导致名称冲突)
显然我可以在表单及其所有字段中添加类似:id => '' 的内容,但这似乎有点重复。最好的方法是什么?
【问题讨论】:
标签: ruby-on-rails ruby forms