I’ve got nested scaffolded resource objects as indicated below. All
the routing and display stuff seems to work properly, but when I
create a new identity, it shows up in the database with a NULL
user_id, even though I’m creating the object via the identities
attribute of a user object. What am I missing?
Relevant snippets:
config/routes.rb:
map.resources :users do |users|
users.resources :identities
end
models/user.rb:
class User < ActiveRecord::Base
has_many :identities
end
models/identity.rb:
class Identity < ActiveRecord::Base
belongs_to :user
end
controllers/identities_controller.rb:
class IdentitiesController < ApplicationController
before_filter :get_user
def get_user
@user = User.find(params[:user_id])
end
def create
@identity = @user.identities.new(params[:identity])
respond_to do |format|
if @identity.save
flash[:notice] = ‘Identity was successfully created.’
format.html { redirect_to identity_url(@user, @identity) }
format.xml { head :created, :location =>
identity_url(@user,
@identity) }
else
format.html { render :action => “new” }
format.xml { render :xml => @identity.errors.to_xml }
end
end
end
end