Ruby on rails 关联-外键
我有两个目标:Ruby on rails 关联-外键,ruby-on-rails,associations,Ruby On Rails,Associations,我有两个目标: create_table "conditions", force: true do |t| t.string "name" t.integer "condition_category_id" end create_table "condition_categories", force: true do |t| t.string "name" end 我试图在另一列中列出条件类别名称为的条件。然而,由于我用下划线命名它,我对如何正确设置关联有
create_table "conditions", force: true do |t|
t.string "name"
t.integer "condition_category_id"
end
create_table "condition_categories", force: true do |t|
t.string "name"
end
我试图在另一列中列出条件类别名称为的条件。然而,由于我用下划线命名它,我对如何正确设置关联有点困惑。我注意到模型被重写为ConditionCategory,但我仍然无法让它正常工作
这是我的状态模型
class Condition < ActiveRecord::Base
belongs_to :category, class_name: 'ConditionCategory'
end
类条件
在我看来
<td><%= condition.category.name %></td>
rails相对较新,因此非常感谢您的帮助请参阅。外键应与关联的名称相匹配,而不是类名
(当它们不同时)。因此,您需要同时指定以下两项:
belongs_to :category, class_name: 'ConditionCategory',
foreign_key: 'condition_category_id'
或者,您可以将数据库中的外键列重命名为category\u id
您有两个选项
1.正如@gregates所建议的,您应该在您的条件
模型中的关联中添加外键
class Condition < ActiveRecord::Base
belongs_to :category, class_name: 'ConditionCategory',
foreign_key: 'condition_category_id'
end
在你看来,你必须这样改变
<td><%= condition.condition_category.name %></td>
要获取与该条件相关联的条件\u类别的名称
<td><%= condition.condition_category.name %></td>