#34 new
Javix

Interpolation in activerecord.errors.template.header.other & activerecord.errors.template.body not read

Reported by Javix | January 31st, 2011 @ 10:57 AM

I tried to translate the errors message header and body and it seems that the interpolation didn't work properly.
here is what I did in 'error_messages_helper.rb' file (I use nifty_generators gem):
[code] module ErrorMessagesHelper
# Render error messages for the given objects. The :message and :header_message options are allowed. def error_messages_for(*objects)

options = objects.extract_options!
options[:header_message] ||= t("activerecord.errors.template.header.other")
options[:message] ||= t("activerecord.errors.template.body")
messages = objects.compact.map { |o| o.errors.full_messages }.flatten
unless messages.empty?
  content_tag(:div, :class => "error_messages") do
    list_items = messages.map { |msg| content_tag(:li, msg) }
    content_tag(:h2, options[:header_message]) + content_tag(:p, options[:message]) + content_tag(:ul, list_items.join.html_safe)
  end
end

end

module FormBuilderAdditions

def error_messages(options = {})
  @template.error_messages_for(@object, options)
end

end end

ActionView::Helpers::FormBuilder.send(:include, ErrorMessagesHelper::FormBuilderAdditions)
[/code] When generating a validation error, I got:
[code] "Impossible d'enregistrer %{model} : %{count} erreurs" [/code] inteads of the translated model name and count value.
I also attache the translation 'yml' file.

Comments and changes to this ticket

  • Javix

    Javix January 31st, 2011 @ 11:01 AM

    • no changes were found...
  • Javix

    Javix March 10th, 2011 @ 05:53 PM

    • Tag set to solved

    OK, I think that we can close the issue as I found the way to solve the problem.
    That's how:

    • in my view(without using nifty-geberators gem), I had to precise the model to use and count to make them recongnized by interpolation:
    <%= form_for(@user) do |f| %>
      <% if @user.errors.any? %>
        <div id="error_explanation">      
          <h2><%= t('errors.template.header', :model=> @user.class.human_name, :count=> @user.errors.count) %></h2>
    
          <ul>
          <% @user.errors.full_messages.each do |msg| %>
            <li><%= msg %></li>
          <% end %>
          </ul>
        </div>
      <% end %>
    

    The translation file is unchanged as it is on github.
    Voilà, hope this helps.

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.

New-ticket Create new ticket

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile ยป

Repository for collecting Locale data for Ruby on Rails I18n as well as other interesting, Rails related I18n stuff

People watching this ticket

Attachments

Tags

Pages