Without the user method in the subscription model I get the following
error:

User(#17369790) expected, got HashWithIndifferentAccess(#2700040)

I've changed the user method:

def user=(attributes)
  attributes.each do |attribute|
    self.build_user(attribute.first => attribute.last)
  end
end

I get no error and the subscripton model is saved, but not the user
model.

These are my parameters:

..."subscription"=>{
  "user"=>{
    "name"=>"vorname",
    "city"=>"ort",
    "postal_code"=>"plz",
    "street"=>"straße",
    "phone"=>"telefon",
    "c_o"=>"c/o (optional)",
    "surname"=>"nachname",
    "comment"=>"kommentar (optional)",
    "email"=>"e-mail"
  }
}...

For me they are not looking that bad.

On 24 Feb., 23:07, Me <[email protected]> wrote:
> Try self.build_user(:name=>attributes) , name or whatever the column
> is.
>
> On Feb 24, 3:27 pm, Stefan Frede <[email protected]> wrote:
>
> > Hi!
>
> > I've got a not so unfamiliar multiple models in one form problem. Due
> > to the complex forms railscast I've got it up and running for a one-to-
> > many relationship but now I have a one-to-one relationship and I
> > didn't get it done.
>
> > Here is my code, perhaps someone can take a look and give me a hint
> > what's wrong. I put what is going wrong into the code where I think it
> > is belonging to. And I don't know if it matters but I'm running Rails
> > 2.1.1.
>
> > ##
> > # Model
>
> > class Subscription < ActiveRecord::Base
> >   belongs_to :user
>
> >   def user=(attributes)
> >     ##
> >     # !!! Here is something wrong
> >     # - I get a Hash with all my fields here
> >     # - attributes belongs to class HashWithIndifferentAccess
> >     # - Whith self I get the error „undefined method
> > `stringify_keys!'...“
> >     # - Without self the subscription model is saved without the user
> > model
>
> >     self.build_user(attributes)
> >   end
> > end
>
> > class Subscription < ActiveRecord::Base
> >   has_one :subscription
> > end
>
> > ##
> > # Controller
>
> > class SubscriptionsController < ApplicationController
> >   def new
> >     @subscription = Subscription.new
> >     @subscription.build_user
>
> >     respond_to do |wants|
> >       wants.html
> >       wants.xml  { render :xml => @subscription }
> >     end
> >   end
>
> >   def create
> >     @subscription = Subscription.new(params[:subscription])
>
> >     respond_to do |wants|
> >       if @subscription.save
> >         flash[:notice] = 'Subscription was successfully created.'
> >         wants.html { redirect_to root_url }
> >         wants.xml  { render :xml => @subscription, :status
> > => :created, :location => @payment }
> >       else
> >         wants.html { render :action => "new" }
> >         wants.xml  { render :xml => @subscription.errors, :status
> > => :unprocessable_entity }
> >       end
> >     end
> >   end
> > end
>
> > ##
> > # View (Haml syntax)
>
> > - form_for :subscription, @subscription, :url => subscriptions_path do
> > |subscription_form|
>
> >   ... subscription fields
>
> >   - subscription_form.fields_for :user do |user_form|
>
> >     ... user fields
>
> > Every help is appreciated. 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