我有以下表格:

<%= form_for [post, Comment.new,], :remote => true do |f| %>
<%= f.text_area :content, :cols =>10, :rows => 1%>
<% end %>
<%= f.submit :class => "input_comment"  %>

生成下一个html代码:

<form method="post" id="new_comment" data-remote="true" class="new_comment" 
action="/post/4efcda9e1d41c82486000077/comments" accept-charset="UTF-8"><div 
style="margin:0;padding:0;display:inline"><input type="hidden" value="✓" name="utf8">
<input type="hidden" value="ctVfDF/O4FIR91I7bC5MVezQmutOCkX3dcXe73uNPZY=" name="authenticity_token">

<textarea rows="1" name="comment[content]" id="comment_content" cols="10"></textarea>
<input type="submit" value="Create Comment" name="commit" class="input_comment">
</form>

如果我在同一个页面中有多个表单,那么使用相同id的html是无效的.

  • 生成id="new_comment"的表单_的id
  • textarea的id为id="comment_content"

在同一个页面中有这么多表单是无效的html.

How can I change the id autogenerate by form_for method helper from rails 3.1?

推荐答案

除了miked所说的,为帖子创建唯一表单id的最简单方法是在id属性中使用帖子的id号,如下所示:

<%= form_for [post, Comment.new,], :remote => true, :html => { :id => "new_comment_on_#{post.id}" } do |f| %>

Ruby-on-rails相关问答推荐

mini_racer gem 0.8.0无法与Ruby 3.1.xBundle 安装

Rails:比枚举更惯用的排序/可比较列表方法?

Rails/Rspec中的测试文章创建

Rails 路由到唯一索引

Time.zone.now.to_date 是否等同于 Date.today?

rails 3:将链接显示为按钮?

如何从 Rails 路由中删除控制器名称?

如何确定 Rails 是从 CLI、控制台还是作为服务器运行?

在公共 Rails 应用程序中将敏感数据存储在哪里?

是否有与 PHP 的 isset() 等效的 Rails?

Rails如何对列求和?

如何在 Ruby 中创建一个新的 Date 实例

我如何找出为什么我不能#destroy() 记录?

使 rails 控制台输出更漂亮一点

Rails 4 pgsql add_index 类型为 GIN 或 GiST

Django 还是 Ruby-On-Rails?

从 ActiveRecord 对象中提取两个属性的快捷方式?

默认情况下 haml

Rails - 邮件,将正文作为纯文本获取

无论何时 gem 在 Heroku 上运行 cron 作业(job)