我有一些用户对象需要引用外部表上的静态值。使用者可以选择时尚和食物。时尚选择和食物选择表只是带有ID的字符串列表。将值存储在单独的文件(CSV,JSON)中不适合我的业务案例。
我定义了一个自定义方法:
def fashion_choice
FashionChoice.find_by(id: self.fashion_choice_id)
end
哪一个工作正常,但由于我在ActiveRecord查询中无法使用includes
,因为该关联是在自定义方法中定义的,因此给了我N + 1的问题。
我知道我可以在用户模型中使用类似belongs_to的方式来告诉rails密钥位于Users表中,但是说User属于一种时尚选择感到很奇怪。有没有更好的方法可以做到这一点,还是我只需要惯用的Rails方法?
用户表:
id name fashion_choice_id food_choice_id
FashionChoice表:
id name
1 Halloween
2 Holiday
3 Beach Santa
FoodChoice表与此类似。