我有一個名為 foods 和 categories 的表,但這個表沒有關系,我想通過另一個名為 food_category 的表來連接它們。我想在食物和類別之間建立一對一的關系,也許圖表看起來像這樣

class Food < ApplicationRecord
has_one :category
end
class Category < ApplicationRecord
has_one :food
end
class FoodCategory < ApplicationRecord
belongs_to :category
belongs_to :food
end
是否有可能做到這一點?
uj5u.com熱心網友回復:
是的,這是可能的。你只需要做
has_one :category, through: :food_categories
正如此處的 Rails 檔案中所討論的那樣。
然而,這是一種冗長的方式來進行這種關聯。如果它是一對一的,為什么不從 Food 中添加一個外鍵到 Category 呢?大概,您實際上希望 Category 包含許多Food 記錄?似乎下面會更有意義:
class Food < ApplicationRecord
belongs_to :category
end
class Category < ApplicationRecord
has_many :food
end
uj5u.com熱心網友回復:
class Food < ApplicationRecord
has_one :food_category
has_one :category, through: :food_categories
end
在 Rails 控制臺中,您可以像這樣訪問
Food.find(:id).categories
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/474207.html
