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

我遇到了一个问题,即由于没有找到该元素,以下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”。

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

我从Rails 3.0升级到3.1,并注意到我的一个规格由于缺少ID属性而失败。 一些谷歌搜索显示,这是Rails 3.1的预期行为,如各自的发行说明中所述(见第5.3节“动作视图”) :

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

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