我正在尝试将应用移动到rails 3.1。我的许多测试都破了,因为提交按钮不再具有id。 Release Notes (see sect. "5.3 - Action View")确认了它:
提交表单助手不再生成id“object_name_id”。
以下是更改了action_view / helpers / form_helper.rb的relevant commit。
我希望在没有弄乱已安装的gem或手动更改我的所有视图的情况下返回旧行为。所以我试着修补它:
# this is config/initializers/FormHelperMonkeypatch.rb
module ActionView
module Helpers
module FormHelper # <-- this is the line phoet repaired, see his answer below
# code from rails 3.0
def submit(value=nil, options={})
value, options = nil, value if value.is_a?(Hash)
value ||= submit_default_value
@template.submit_tag(value, options.reverse_merge(:id => "#{object_name}_submit"))
end
end
end
end
我重新启动了我的服务器,但我发现我的补丁没有效果。我做错了什么?
答案 0 :(得分:1)
你正在编辑错误的地方。用这个:
module ActionView
module Helpers
class FormBuilder
# code from rails 3.0
def submit(value=nil, options={})
value, options = nil, value if value.is_a?(Hash)
value ||= submit_default_value
@template.submit_tag(value, options.reverse_merge(:id => "#{object_name}_submit"))
end
end
end
end