Mysql 如何在rails中添加新属性以关联表列
在我的rails应用程序中,我必须为关联表添加一个名为Mysql 如何在rails中添加新属性以关联表列,mysql,ruby-on-rails,ruby,ruby-on-rails-3.1,associations,Mysql,Ruby On Rails,Ruby,Ruby On Rails 3.1,Associations,在我的rails应用程序中,我必须为关联表添加一个名为is\u leader的新列 关联表的关系如下所示: has_and_belongs_to_many :analysis_responses, :join_table => "analysis_responses_participants" 以下是参与者详细信息保存到db的代码: organization.people.create(participant) 参与者具有以下值 name: Test User position: b
is\u leader
的新列
关联表的关系如下所示:
has_and_belongs_to_many :analysis_responses, :join_table => "analysis_responses_participants"
以下是参与者详细信息保存到db的代码:
organization.people.create(participant)
参与者
具有以下值
name: Test User
position:
birthdate:
id:
lead: "1"
如果前导值为1,则对于特定记录,为_leader
列值应为1
我想知道如何在rails的关联表中保存is\u leader
值
谢谢如果您需要在联接表上保存属性,则必须使用联接模型而不是HABTM
class Organization
has_many :analysis_responses
has_many :people, through: :analysis_responses
end
class AnalysisResponse
belongs_to :organization
belongs_to :person
end
class Person
has_many :analysis_responses
has_many :organizations, through: :analysis_reponses
end
没有回答您的问题,但是:在Rails中,最好不要在布尔属性的前面加上
is\uu
。其他语言中的这种做法部分是由于方法名称中缺少?
支持。因为Rails为布尔属性创建了?
方法,所以最好将列命名为leader
,并使用leader?检查其值是否为truthy?
@Deefour:非常感谢您的建议。在这种情况下,我将更改itOk,如何将leader属性保存在关联表中?在我的analysis\u response类中,我添加了以下内容:has\u,并且\u属于\u many:participants,:class\u name=>“Person”,:join\u table=>“analysis\u responses\u participants”
您无法将信息保存到中的联接表中,该联接表有一个\u属于\u多个
。你必须使用加入模式。非常感谢肖恩。这很有帮助