rails belongs_to多个模型如何在控制器中创建

时间:2017-05-22 03:55:14

标签: ruby-on-rails ruby

我有3个模型:想法,知识和评论。 理念和知识都有很多评论。 评论属于理念和知识。

但是idk如何写评论创建。 这是我之前写过的想法部分,现在我想添加知识部分。

def create
@idea = Idea.find(params[:idea_id])
@comment = @idea.comments.create(comment_params)
redirect_to idea_path(@idea)

2 个答案:

答案 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