Я создал пользовательскую форму для создания модели соединения на has_many :through
связи. Модели выглядят примерно так:
class Team
has_many :team_members
has_many :members, :through => :team_members
end
class Member
has_many :team_members
has_many :teams, :through => :team_members
end
class TeamMember
belongs_to :team
belongs_to :member
# and this model has some validations too
end
Форма, которую я построил, предназначена для выбора членов команды. Я не буду вставлять форму, но она использует метод form_tag
и в основном отправляет массив хэшей, которые содержат member_id
и squad_number
. Затем я обновляю базу данных действием, которое выглядит примерно так (немного упрощено, но вы получите jist):
@team.transaction do
@team.team_members = params[:team_members].collect{|tm| @team.team_members.new(tm)}
if @team.save
redirect_to ...
else
render :action => :members
end
end
Все отлично работает, но я проверяю squad_number
на уникальность и численно. Итак, когда какая-либо из этих проверок завершается ошибкой, как мне получить доступ к ним, на мой взгляд, и как я могу определить, на каком из многих участников произошла ошибка?