提交 d50bf47b 编写于 作者: J José Valim

Call :to_model before working with the object.

上级 8e0208f6
...@@ -1072,16 +1072,21 @@ def error_messages(options = {}) ...@@ -1072,16 +1072,21 @@ def error_messages(options = {})
@template.error_messages_for(@object_name, objectify_options(options)) @template.error_messages_for(@object_name, objectify_options(options))
end end
def submit(value = nil, options = {}) def submit(value=nil, options={})
value ||= begin value, options = nil, value if value.is_a?(Hash)
key = @object ? (@object.new_record? ? :create : :update) : :submit
model = if @object.class.respond_to?(:model_name) unless value
@object.class.model_name.human object = @object.respond_to?(:to_model) ? @object.to_model : @object
key = object ? (object.new_record? ? :create : :update) : :submit
model = if object.class.respond_to?(:model_name)
object.class.model_name.human
else else
@object_name.to_s.humanize @object_name.to_s.humanize
end end
I18n.t(:"helpers.submit.#{key}", :model => model, :default => "#{key.to_s.humanize} #{model}") value = I18n.t(:"helpers.submit.#{key}", :model => model,
:default => "#{key.to_s.humanize} #{model}")
end end
@template.submit_tag(value, options.reverse_merge(:id => "#{object_name}_submit")) @template.submit_tag(value, options.reverse_merge(:id => "#{object_name}_submit"))
......
...@@ -521,11 +521,11 @@ def test_submit_without_object_and_locale_strings ...@@ -521,11 +521,11 @@ def test_submit_without_object_and_locale_strings
old_locale, I18n.locale = I18n.locale, :submit old_locale, I18n.locale = I18n.locale, :submit
form_for(:post) do |f| form_for(:post) do |f|
concat f.submit concat f.submit :class => "extra"
end end
expected = "<form action='http://www.example.com' method='post'>" + expected = "<form action='http://www.example.com' method='post'>" +
"<input name='commit' id='post_submit' type='submit' value='Save changes' />" + "<input name='commit' class='extra' id='post_submit' type='submit' value='Save changes' />" +
"</form>" "</form>"
assert_dom_equal expected, output_buffer assert_dom_equal expected, output_buffer
ensure ensure
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册