为什么f.submit不在Rails 3.1中生成id属性?

时间:2011-11-23 07:21:15

标签: ruby-on-rails ruby-on-rails-3.1

由于找不到元素,我遇到了以下jquery脚本在Rails 3.1中失败的问题。

jquery的

member_submit_button = $("#member_submit");

HAML

= form_for @member do |f|
...
    f.submit "Update details", :class => "member_submit_button bluebutton"

在Rails 3.0中,这工作正常,我将其跟踪到Rails 3.1而不生成id属性。在rails 3.0中,标签id =“member_submit”。

这当然可以通过添加:id =>轻松修复。 f.submit调用的“member_submit”参数。但是我想知道这种变化的原因是什么,因为我没有在任何地方看到过这种情况。

1 个答案:

答案 0 :(得分:4)

我从Rails 3.0升级到3.1,并注意到我的一个规格由于缺少ID属性而失败。 一些谷歌搜索显示这是Rails 3.1的预期行为,如相应Release Notes (see sect. "5.3 - Action View")中所述:

  

提交表单助手不再生成id“object_name_id”。

即使我的消息没有完全回答你的问题,因为我无法告诉你为什么Rails团队决定做出这个改变,至少你可以确定这不是Rails的缺陷,而是一个改变形成帮手。 ;)