我遇到了几个多态关联的问题。我试图通过多态关联将用户和食谱连接到共享膳食要求(DR),并且每个人都有多对多的饮食要求。
我已经创建了一个膳食要求来测试这个(素食),但是在页面视图中访问它时遇到了麻烦。我认为这样做的原因是创建的DR具有classifiable_type
Recipe
,这意味着当数据库查询运行时,我无法访问此用户的特定实例,因为SQLite会自动查找{{1} 1 {} classifiable_type
。此外,按照目前的情况,每个DR似乎必须属于特定的User
或User
,而我希望它们都可供许多人使用(或者我错了吗?)
在控制台中,我可以看到Recipe
和User.first.dietary_requirements
,但在视图中我无法访问这些,因为上述原因。
有没有办法解决这个问题并让我的视图显示用户DR和配方DR的列表,还是我必须调整我的模型来实现这一目标?现在我打算切换到更详细的has-many-through关系,在User-DR和Recipe-DR之间使用单独的连接表。如果有另一种选择,Rails方式来实现这一目标,那么听到它会很棒。
以下型号代码:
配方
Recipe.first.dietary_requirements
用户
has_many :dietary_requirements, as: :classifiable
饮食要求
has_many :dietary_requirements, as: :classifiable
答案 0 :(得分:1)
您需要膳食要求才能与用户和食谱建立has_and_belongs_to_many关系,但是您不能拥有多态HABTM关联。您需要创建一个连接模型才能工作。