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

Allow f.submit to be localized per object.

上级 e5a2a9fc
......@@ -1096,6 +1096,14 @@ def error_messages(options = {})
# create: "Create a {{model}}"
# update: "Confirm changes to {{model}}"
#
# It also searches for a key specific for the given object:
#
# en:
# helpers:
# submit:
# post:
# create: "Add {{model}}"
#
def submit(value=nil, options={})
value, options = nil, value if value.is_a?(Hash)
value ||= submit_default_value
......@@ -1121,8 +1129,12 @@ def submit_default_value
@object_name.to_s.humanize
end
I18n.t(:"helpers.submit.#{key}", :model => model,
:default => "#{key.to_s.humanize} #{model}")
defaults = []
defaults << :"helpers.submit.#{object_name}.#{key}"
defaults << :"helpers.submit.#{key}"
defaults << "#{key.to_s.humanize} #{model}"
I18n.t(defaults.shift, :model => model, :default => defaults)
end
def nested_attributes_association?(association_name)
......
......@@ -31,7 +31,10 @@ def setup
:submit => {
:create => 'Create {{model}}',
:update => 'Confirm {{model}} changes',
:submit => 'Save changes'
:submit => 'Save changes',
:another_post => {
:update => 'Update your {{model}}'
}
}
}
}
......@@ -550,6 +553,21 @@ def test_submit_without_object_and_locale_strings
I18n.locale = old_locale
end
def test_submit_with_object_and_nested_lookup
old_locale, I18n.locale = I18n.locale, :submit
form_for(:another_post, @post) do |f|
concat f.submit
end
expected = "<form action='http://www.example.com' method='post'>" +
"<input name='commit' id='another_post_submit' type='submit' value='Update your Post' />" +
"</form>"
assert_dom_equal expected, output_buffer
ensure
I18n.locale = old_locale
end
def test_nested_fields_for
form_for(:post, @post) do |f|
f.fields_for(:comment, @post) do |c|
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册