【发布时间】:2018-11-29 20:08:12
【问题描述】:
在我的应用程序中,我有一个名为 User 的实体,它有一个 Talent。人才是我系统上的一种用户(模特、摄影师、视频制作人、客户)
#user.rb
class User < ApplicationRecord
has_one :talent, dependent: :destroy
一个 Talent 属于一个用户,拥有很多 TalentAbilities。
#talent.rb
class Talent < ApplicationRecord
belongs_to :user
has_many :talent_talent_abilities, dependent: :destroy
has_many :talent_abilities, through: :talent_talent_abilities
因此,例如,我们可以创建一个属于 Talent 的 TalentAbility。像这样:
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
谢谢
【问题讨论】:
标签: ruby-on-rails ruby