使用polymorphic_path,获取错误“未定义的方法'合并'”

时间:2010-09-10 02:33:40

标签: ruby-on-rails

我使用多态来为我的文章,个人资料和照片模型创建评论。以下是我的文章展示页面的视图:

<div id="comment <%= comment.id %>">
  <%= comment.title %>
  | <%= link_to "Permalink", polymorphic_path(@commentable, comment), :action => :show %>
  | <%= link_to "Reply", polymorphic_path(comment, @comment_child), :action => :new %>
  | <%= link_to "Edit Comment", polymorphic_path(@commentable, comment), :action => :edit %>
  | <%= link_to 'Delete Comment', [@commentable, comment], :confirm => "Are you sure?", :method => :delete %><br />
  <%= comment.content %><br />
  <%= comment.user.name %><br /><br />
  <%= render :partial => 'comments/comment', :collection => @comment.children %>
</div>

以下是文章'show'控制器:

  def show
    @article = Article.find(params[:id])
    @commentable = Article.find(params[:id])
    @comments = @commentable.comments.paginate(:page => params[:page])
    @comment = Comment.new
    @title = @article.title
  end

此行显示错误:

   | <%= link_to "Permalink", polymorphic_path(@commentable, comment), :action => :show %>

但我确信在使用polymorphic_path的所有其他行中都存在此错误。如果我为article_comment_path交换polymorphic_path。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:11)

从多态路径的定义,它期望一个参数,然后是一个可选的哈希。那么,我认为你需要将@commentable和comment作为数组中的一个参数传递

polymorphic_path([@commentable,comment])