我有3个模型:想法,知识和评论。 理念和知识都有很多评论。 评论属于理念和知识。
但是idk如何写评论创建。 这是我之前写过的想法部分,现在我想添加知识部分。
def create
@idea = Idea.find(params[:idea_id])
@comment = @idea.comments.create(comment_params)
redirect_to idea_path(@idea)
答案 0 :(得分:2)
这肯定是一个糟糕的设计,即使你现在以某种方式解决它,它将来会适得其反。您需要使用Polymorphic Association
。它是您用例中的标准和推荐解决方案。
您可以阅读When my pointer is on icon。网上有很多教程,只是谷歌。还有一个here可以解决您的确切问题。
答案 1 :(得分:1)
您可以在此处实施“多态协会”。您可以从here
中引用它根据您的要求,您可以按照以下方式进行模型设计,
class Comment < ApplicationRecord
belongs_to :commentable, polymorphic: true
end
class Idea < ApplicationRecord
has_many :comments, as: :commentable
end
class Knowledge < ApplicationRecord
has_many :comments, as: :commentable
end