添加has_and_belong_to_many實體我有兩個型號:使用靜態方法
class Candidate < ActiveRecord::Base
has_and_belongs_to_many :skills
end
class Skill < ActiveRecord::Base
has_and_belongs_to_many :candidates
def self.add
find_or_create_by(name:"management")
end
end
下面的執行似乎很好地工作:
>current_candidate.skills.count
=> 0
>current_candidate.skills.find_or_create_by(name:"mathematics")
=> ...
>current_candidate.skills.count
=> 1
但這裏是當我使用靜態方法add
發生什麼事:
>current_candidate.skills.count
=> 0
>current_candidate.skills.add
=> ...
>current_candidate.skills.count
=> 0
創建技能management
,但不是bi隸屬於我的候選人實體。 我不明白爲什麼靜態方法不考慮current_candidate
。
PS:這與運行良好的直接結合(如的has_many和belongs_to的)
什麼樣的候選實體?你必須在add方法中傳遞它,然後在add方法中設置find_or_create_by屬性 –