使用sentarited_resources进行嵌套的多态性评论
-
29-09-2019 - |
题
我是使用继承资源的新手,并希望将其用于多态性嵌套注释。我有几个可以评论的对象(文章,画廊等),并且评论也可以嵌套。我使用的是Awesome_nested_set(parent_id,lft,rgt)的组合以及具有多态性评论列的评论模型。
控制器需要(仅)为创建操作接收AJAX请求,并按照以下方式执行:
发布到 /文章/12/评论/34 以与@Article(12)为等于@Comment(34)的父级的评论相等的评论。
/文章/12/评论/34
发布到 /画廊/12/评论/34 用@gallery(12)和父母等于@Comment(34)的父母创建评论。
我有点卡在哪里开始。这是继承资源的好用例吗?
class CommentsController < InheritedResources::Base
respond_to :js, :only => :create
belongs_to :article, :cheat, :gallery, :video, :polymorphic => true
do
belongs_to :comments
end
def create
create! do |format|
# How in here do I build a comment so that it handles
polymorphism?
@comment.children.create(:commentable => @article or @cheat or
@something_generic?)
end
end
end
解决方案
嵌套评论很困难。 Rails Resources不会提供给创建动作的ID,因此我认为您不能以这种方式正确发布创建动作。您可能需要将注释添加到Alter_to选项中,因此您可以发布到 /评论/33/评论. 。我不知道继承源是否支持这一点。如果确实如此,则应该自动创建对象。您也可以参考parent_url等内容。
不隶属于 StackOverflow