Rails has_many, build, inverse_of

У меня есть 2 такие модели:

class User < ActiveRecord::Base
    has_many :user_services, :inverse_of => :user

    validates_length_of :user_services, :maximum => 3
end

class UserService < ActiveRecord::Base
    belongs_to :user, :inverse_of => :user_services

    validates_associated :user
end

Я хотел бы сделать что-то вроде:

user_service = user.user_services.build(...)
if user_service.save
...

, но это вызывает ошибку «слишком глубокий уровень стека». Я предполагаю, что из-за validates_associated в сочетании с inverse_of. кто-нибудь знает, почему это произошло?

Вызов save непосредственно для объекта пользователя, а не объекта user_service, кажется, работает, но мне интересно, есть ли способ добиться этого в обратном порядке.

Спасибо!

5
задан joelmats 19 April 2011 в 03:48
поделиться