我正在尝试将一个应用程序移动到rails 3.1。我的许多测试都失败了,因为提交按钮不再有id。发行说明(参见"5.3-操作视图"一节)确认了这一点:
提交表单助手不再生成id"object_name_id"。
以下是更改action_view/helpers/form_helper.rb.的相关提交
我想在不干扰安装的宝石或手动改变我所有观点的情况下恢复以前的行为。所以我试着用猴子补丁:
# 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
我重新启动了服务器,但我看不到我的补丁有任何影响。我做错了什么?
您编辑的地方不对。使用这个:
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