I improved this solution by adding a method that removes the rails
default message ('child model is invalid')
but keeps all the rest:
(notice the call to merge! at the end)

 show_child_errors(@key, value, "translation_values")

  def show_child_errors(parent, child, collection_name)
    errors = parent.errors.each{|attr,msg| attr  }
    if  errors.include?(collection_name)
      #keep all other errors
      keep_errors = parent.errors.select{|attr,msg| attr !=
collection_name }
      parent.errors.clear
      keep_errors.each do |e|
        parent.errors.add(e.first, e.second)
      end
      parent.errors.merge!(child.errors)
    end
  end

I am not


On May 7, 7:44 pm, oren <[email protected]> wrote:
> I am not sure about best practice but I created a file config/
> initializers/active_record.rb
> with the content ofhttp://gist.github.com/376389and reload the
> server.
>
> as far as I understand, the initializers folder is the place to have
> stuff you want to load at startup for all environments.
> And what Michael's code is doing is opening the class Errors inside
> ActiveRecord module and adding the method merge!
>
> please correct me if it's not accurate.
> also, where can I find more insights about the initialize process?
>
> On Apr 23, 1:57 pm, Matthew Hillsborough
>
>
>
> <[email protected]> wrote:
> > Michael,
>
> > Thank you for this, I will try it right away.
>
> > Mind if I ask where the best place to put this code in as a best practice
> > for Rails?
>
> > Matthew
>
> > On Fri, Apr 23, 2010 at 5:49 AM, Michael Pavling <[email protected]> wrote:
> > > On 23 April 2010 01:23, Matthew Hillsborough
> > > <[email protected]> wrote:
> > > > That is what I can't figure out. Why am I getting Bars is invalid
> > > > versus the error messages displayed above, ["Real can't be blank",
> > > > "Real you must supply a valid email"]  etc.
>
> > > > How do I have this output the real error messages so the user has some
> > > > insight into what they did wrong? How do I write my render method in
> > > > my controller to show all of the appropriate error messages? And more
> > > > important, what will my xml builder view look?
>
> > > I tend to use the "merge errors" process gleaned from
> > >http://dev.rubyonrails.org/attachment/ticket/11394/merge_bang_errors....
>
> > >http://gist.github.com/376389
>
> > > Then in your controller you can use:
>
> > > �[email protected]! bar.errors
>
> > > ... and the view will work as normal, but with nice errors :-)
>
> > > --
> > > You received this message because you are subscribed to the Google Groups
> > > "Ruby on Rails: Talk" group.
> > > To post to this group, send email to [email protected].
> > > To unsubscribe from this group, send email to
> > > [email protected]<rubyonrails-talk%[email protected]>
> > > .
> > > For more options, visit this group at
> > >http://groups.google.com/group/rubyonrails-talk?hl=en.
>
> > --
> > You received this message because you are subscribed to the Google Groups 
> > "Ruby on Rails: Talk" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to 
> > [email protected].
> > For more options, visit this group 
> > athttp://groups.google.com/group/rubyonrails-talk?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Ruby on Rails: Talk" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group 
> athttp://groups.google.com/group/rubyonrails-talk?hl=en.

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to