У меня есть has_many через ассоциацию с атрибутом и некоторые проверки «модели соединения». Когда я пытаюсь сделать что-то вроде @user.projects << @project
, и ассоциация уже создана (таким образом, проверка уникальности завершается неудачей), вместо ошибки, добавляемой к ошибкам проверки, возникает исключение.
class User
has_many :project_users
has_many :projects, :through => :project_users
class Project
has_many :project_users
has_many :users, :through => :project_users
class ProjectUser
belongs_to :user
belongs_to :project
# ...
if @user.projects << @project
redirect_to 'somewhere'
else
render :new
end
Как я могу создать ассоциацию, как я сделал бы с методом <<
, но вызывая save
вместо save!
, чтобы я мог показать ошибки проверки в моей форме вместо использования rescue
, чтобы поймать это и обращаться с этим соответствующим образом?