You haven`t showed your view code, so i`m assumming that every object
has it`s own "place", so why don't you just add an error_messages_for
every object at the beginning of their part in the form?

-
Maurício Linhares
http://alinhavado.wordpress.com/ (pt-br) | http://blog.codevader.com/ (en)



On Fri, Feb 20, 2009 at 10:15 PM, Stefan Frede <[email protected]> wrote:
>
> Hi!
>
> I have a problem with the presentation of error messages for multiple
> objects. The validation works fine and if errors occure they will all
> be presented, but only for one object at a time. When I submit my form
> the occuring errors will be presented and if I fix them and submit the
> form again the errors for the next form will be presented and so on.
>
> I don't know what I have to do to show all errors for all objects at
> once.
>
> In my view template I use <%= error_messages_for payment,
> subscription, user %>.
>
> This is how my create method looks like:
>
> def create
>  @payment = Payment.new(params[:payment])
>  @subscription = Subscription.new(params[:subscription])
>  @user = User.new(params[:user])
>
>  @service = SubscriptionService.new(@subscription, @user, @payment)
>
>  if @service.save
>    flash[:notice] = 'Subscription was successfully created.'
>    redirect_to root_url
>  else
>    render :action => "new"
>  end
> end
>
> This is how my SubscriptionService looks like:
>
> class SubscriptionService
>
>  attr_reader :payment, :subscription, :user
>
>  def initialize(subscription, user, payment)
>    @payment = payment
>    @user = user
>    @subscription = subscription
>  end
>
>  def save
>    return false unless valid?
>    begin
>      Subscription.transaction do
>        if @payment.new_record?
>          @payment.subscription = @subscription
>          @payment.save!
>        end
>        if @user.new_record?
>          @user.subscription = @subscription
>          @user.save!
>        end
>        @subscription.save!
>        true
>      end
>    rescue
>      false
>    end
>  end
>
>  def valid?
>    @payment.valid? && @subscription.valid? && @user.valid?
>  end
> end
>
> I think this is pretty basic code and I already found out that the
> presentation has something to do with valid? method in the
> SubscriptionService but as I said I don't know how and where to
> collect all error messages and present them at once.
>
> Many thanks in advance.
>
> Regards,
> Stefan
> >
>

--~--~---------~--~----~------------~-------~--~----~
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