Ruby on rails JSON、Response_with和嵌套资源路由错误?

Ruby on rails JSON、Response_with和嵌套资源路由错误?,ruby-on-rails,json,respond-with,Ruby On Rails,Json,Respond With,大家好,提前谢谢你们检查我的问题 我有这样的嵌套路由: resources :users do resources :avatars end 在创建用户时,我还创建了一个化身,如下所示: def create @user = User.create(params[:user]) @avatar = Avatar.create(:user_id => @user) # Send both User and Avatar object back respond_with(

大家好,提前谢谢你们检查我的问题

我有这样的嵌套路由:

resources :users do
  resources :avatars
end
在创建用户时,我还创建了一个化身,如下所示:

def create
  @user = User.create(params[:user])
  @avatar = Avatar.create(:user_id => @user)
  # Send both User and Avatar object back
  respond_with(@user,@avatar)
end
def create
  @user = User.create(params[:user])
  @avatar = Avatar.create(:user_id => @user)
  # Send both User and Avatar object back
  respond_with(@user)
end
但是,当发出一个服务器请求,该请求将创建一个不适当的用户对象(这将导致JSON响应{error_key=>…})时,rails会给我以下错误:

ActionController::RoutingError (No route matches {:user_id=>#<User id: nil, name: nil, phone_number: "mcdkls", email: "fdsa@cmadksl", password_hash: nil, password_salt: nil, auth_token: nil, admin: false>, :action=>"show", :controller=>"avatars", :id=>#<Avatar id: 19, user_id: 1, created_at: "2011-05-20 01:52:22", updated_at: "2011-05-20 01:52:22">}):
app/controllers/users_controller.rb:13:in `create'
Rails为我返回了一个漂亮的{name=>“不能为空”}。有什么想法吗

万分感谢,
Jared实际上还没有测试过这一点,但问题可能是调用“respond_with”时有多个对象?相反,请尝试将对象放入数组:

def create
  @user = User.create(params[:user])
  @avatar = Avatar.create(:user_id => @user)
  # Send both User and Avatar object back
  respond_with([@user,@avatar])
end
请参见代码回复的投稿人Jose Valim的最后一条评论:


能否显示代码片段或服务器输出,以显示响应的实际URL是什么?这里有相同的问题。你知道怎么解决吗?我知道这个问题有一百万年历史了,但你有相应的回答吗?