添加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属性 –