Rails 多态关联 link 无效

Rails polymorphic association link not working

我正在尝试建立一个多态关联,但似乎一切正常,除了这一件事。我在此处 https://www.youtube.com/watch?v=WOFAcbxdWjY 关注 railscast,其中有一个部分他将 link 添加到 link 编辑到照片的新评论中。

他列出的代码在视频中运行得很好。在视频中,[:new, @commentable, @comment] 行使 link 转到 ..photos/1/comments/new

这是我 comments 视图中的内容。

<div id="wrapper">
    <h3>Comments</h3>
    <p><%= link_to "New Comment", [:new, @commentable, @comment] %></p>
    <% @comments.each do |comment| %>
      <div class="comments">
        <div class="post-title"><%= comment.content %></div>
      </div>
    <% end %>
</div>

唯一的问题是,当我这样做时,link 指向

..articles/new.4

而不是..articles/4/comments/new

我做错了什么?我也在使用 rails5。

看来您的问题是打字错误,您使用的是 @comment 而不是 :comment

尝试更改:

<p><%= link_to "New Comment", [:new, @commentable, @comment] %></p>

至:

<p><%= link_to "New Comment", [:new, @commentable, :comment] %></p>

我相信你想使用 polymorphic_path 助手,试试这个:

<p><%= link_to "New Comment", new_polymorphic_path([@commentable, @comment]) %></p>