嘿大家, 提前感谢您查看我的问题。
我有这样的嵌套路线:
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
但是,在发出会创建不适当用户对象的服务器请求(这应该导致 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 正在尝试显示 HTML 而不是 JSON,但是如果我像这样更改我的控制器:
def create
@user = User.create(params[:user])
@avatar = Avatar.create(:user_id => @user)
# Send both User and Avatar object back
respond_with(@user)
end
Rails 为我返回了一个漂亮的 {name => "can't be blank"}。有什么想法吗?
谢谢一百万,贾里德