Используя polymorphic_path, получаю ошибку "неопределенный метод 'слияние'" - PullRequest
3 голосов
/ 10 сентября 2010

Я использую полиморфизм для создания комментариев к моделям статей, профилей и фотографий. Вот вид на мою страницу шоу статьи:

<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. Это работает, если я заменяю polymorphic_path на article_comment_path.

Большое спасибо за помощь.

1 Ответ

11 голосов
/ 11 сентября 2010

Из определения полиморфного пути он ожидает один параметр, а затем необязательный хеш.Тогда я бы предположил, что вам нужно передать оба @commentable и comment как один параметр в массиве

polymorphic_path([@commentable,comment])

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...