我有2个课程,ProductDetails
和ProductStatus
。
class ProductDetail < ActiveRecord::Base
belongs_to :product_status
end
和
class ProductStatus < ActiveRecord::Base
has_many :product_details
end
这些表的架构如下:
create_table "product_details", force: :cascade do |t|
t.integer "product_id", limit: 4
t.string "serial", limit: 255
t.string "comment", limit: 255
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "status", limit: 4
end
create_table "product_statuses", force: :cascade do |t|
t.boolean "available"
t.string "name", limit: 255
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
显示ProductDetails
,我有status_id
,但我想显示名称。它位于product_statuses
name
。
我试过了:
<% @product_details.each do |product_detail| %>
<td><%= product_detail.product_status.name %></td>
<% end %>
但它不起作用:(
需要帮助。
谢谢!
答案 0 :(得分:2)
根据您的评论,我意识到您正在尝试使用列 belongs_to :product_status, foreign_key: :status
作为外键。这必须在belongs_to语句中提及:
product_status_id
默认情况下,rails正在寻找名为{{1}}的列作为外键。
另见http://guides.rubyonrails.org/association_basics.html#options-for-belongs-to-foreign-key