使用inherited_resources进行嵌套的多态注释

时间:2010-11-30 22:20:05

标签: ruby-on-rails comments polymorphism inherited-resources

我是新手使用继承资源并希望将其用于 多态嵌套注释。我有几个对象 可评论(文章,画廊等)和评论也可以 嵌套。我正在使用awesome_nested_set(parent_id, lft,rgt)我的评论模型具有多态可评论性 列。

控制器需要(仅)接收创建的AJAX请求 行动并执行如下:

发布到 / articles / 12 / comments / 34 会创建一条注释,其评论等于@article(12),父母等于@comment(34)

/ articles / 12 / comments / 34

发布到 / gallery / 12 / comments / 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 

1 个答案:

答案 0 :(得分:0)

嵌套评论很难。 Rails资源没有提供将id传递给create动作,所以我认为你不能以这种方式正确地POST到create动作。您可能需要在belongs_to选项中添加评论,以便发布到 / comments / 33 / comments 。我不知道InheritedResources是否支持这个。如果是,则对象创建应该是自动的。你也可以引用像parent_url这样的东西。