В моем приложении есть объект «Пользователь», у которого есть один талант.Талант - это вид, которым может быть пользователь в моей системе (модель, фотограф, видеомейкер, клиент)
#user.rb
class User < ApplicationRecord
has_one :talent, dependent: :destroy
Талант принадлежит пользователю и имеет много талантов.
#talent.rb
class Talent < ApplicationRecord
belongs_to :user
has_many :talent_talent_abilities, dependent: :destroy
has_many :talent_abilities, through: :talent_talent_abilities
Итак, мы можем создать, например, TalentAbility, которая принадлежит Talent.Например:
TalentType.create!([
{name: "Model", is_model: true, is_photo: false, is_makeup: false, is_hair: false},
{name: "Photographer", is_model: false, is_photo: true, is_makeup: false, is_hair: false
])
TalentAbility.create!([
{name: "Scuba diving", requires_description: false, talent_type_id: 1}
{name: "River rafting", requires_description: false, talent_type_id: 1},
Я хочу добавить вид, в котором пользователь, основываясь на вашем TalentType, редактирует свой профиль, с множеством флажков, где он может щелкнуть, например, «Scuba Diving -> true».""Сплав по реке -> ложь".
Мой вопрос: как лучше всего обновить эти отношения на моем контроллере?Сначала удалите все способности TalentTalentAbility, которые принадлежат этому таланту, а затем добавьте все, основываясь на моей форме?
#profiles_controler.rb
def update
##delete all the entities
TalentTalentAbility.where(talent: u.talent).each do |tt|
tt.destroy
end
##some code to add the new relationships
end
Спасибо