knapo
1
Witam,
Jeżeli ktoś sobie z tym poradził, byłbym niezmiernie wdzięczny za podzielenie się tym jak to zrobił;)
Otóż chodzi o standardowe komunikaty o błędach wyrzucanych przez Railsy, tj.:
“2 errors prohibited this user from being saved”
“There were problems with the following fields:”
Da się je jakoś zmienić?
Adamh
2
pawel
3
Jw. Zapewne, oprocz fields, chcesz tez zlokalizowac to:
“2 errors prohibited this user from being saved”
“There were problems with the following fields:”
niestety jest to hardcoded w active_record_helper.rb, ale wystarczy nadpisac te metode swoja i voila!
def error_messages_for(object_name, options = {})
options = options.symbolize_keys
object = instance_variable_get("@#{object_name}")
if object && !object.errors.empty?
content_tag("div",
content_tag(
options[:header_tag] || "h2",
"#{pluralize(object.errors.count, "error")} prohibited this #{object_name.to_s.gsub("_", " ")} from being saved"
) +
content_tag("p", "There were problems with the following fields:") +
content_tag("ul", object.errors.full_messages.collect { |msg| content_tag("li", msg) }),
"id" => options[:id] || "errorExplanation", "class" => options[:class] || "errorExplanation"
)
else
""
end
end
Najlepiej uzyj pluginu Localization Simplified (http://justaddwater.dk/2006/08/24/ruby-on-rails-plugin-localize-your-rails-app) lub kombinuj z GLoc jezeli chcesz wiecej niz jeden jezyk.
knapo
4
[quote=Adamh]Mozesz w definicji walidatora podac pole : :message => “To pole nie moze byc puste”
Poczytaj rowniez tu:
http://api.rubyonrails.com/classes/ActiveRecord/Errors.html
http://api.rubyonrails.com/classes/ActionView/Helpers/ActiveRecordHelper.html#M000459
http://api.rubyonrails.com/classes/ActionView/Helpers/ActiveRecordHelper.html#M000460[/quote]
To jest wiadome i nie rozwiazuje problemu o ktorym pisze. Chodzi mi o sam “nagłówek” komunikatu o blędzie nie o jego treść, bo to łatwo zmienić.
Adamh
5
Masz error_messages_for ktory nie zwraca naglowka
i rozwiazuje problem o ktorym piszesz - moze nie tak jakbys tego chcial.
knapo
6
[quote=pawel]Jw. Zapewne, oprocz fields, chcesz tez zlokalizowac to:
“2 errors prohibited this user from being saved”
“There were problems with the following fields:”
niestety jest to hardcoded w active_record_helper.rb, ale wystarczy nadpisac te metode swoja i voila!
def error_messages_for(object_name, options = {})
options = options.symbolize_keys
object = instance_variable_get("@#{object_name}")
if object && !object.errors.empty?
content_tag("div",
content_tag(
options[:header_tag] || "h2",
"#{pluralize(object.errors.count, "error")} prohibited this #{object_name.to_s.gsub("_", " ")} from being saved"
) +
content_tag("p", "There were problems with the following fields:") +
content_tag("ul", object.errors.full_messages.collect { |msg| content_tag("li", msg) }),
"id" => options[:id] || "errorExplanation", "class" => options[:class] || "errorExplanation"
)
else
""
end
end
Najlepiej uzyj pluginu Localization Simplified (http://justaddwater.dk/2006/08/24/ruby-on-rails-plugin-localize-your-rails-app) lub kombinuj z GLoc jezeli chcesz wiecej niz jeden jezyk.[/quote]
Dzieki wielkie! O to mi chodzilo, ale jakos nie moglem sie tego doszukac;)