2017-05-22 112 views
1

我有3個模型:想法,知識和意見。 想法和知識都has_many評論。 評論belongs_to的想法和知識。rails belongs_to多個模型如何在控制器中創建

但idk如何寫創建評論。 這是我以前寫的想法部分,現在我想添加知識部分。

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

的想法,並出現在同一視圖或不同的知識有何評論? – Nickey

+0

您是否試圖將知識與知識聯繫起來? – hashrocket

+0

@hashrocket不,他們只是都有意見 – user8045973

回答

2

這當然是一個糟糕的設計,即使您現在修復它,它將在未來發生適得其反。您需要使用Polymorphic Association。在您的使用案例中,它是標準和推薦的解決方案。

你可以閱讀關於它here。網上有很多教程,只是谷歌它。還有一個railscast也解決了你的確切問題。

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 
相關問題