Привет всем, заранее спасибо за проверку моего вопроса.
У меня есть вложенные маршруты, например, так:
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
ОДНАКО, приделая запрос к серверу, который может создать неадекватный объект User (который должен привести к ответу 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 => "не может быть пустым"}.Есть мысли?
Спасибо за миллион, Джаред