link_to显示页面带我到索引页面Rails?

时间:2015-11-24 23:49:26

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 rubygems

我正在尝试在我的应用中设置一个信息中心,其中列出了用户拥有的所有评论。我遇到的问题是,当我点击用户评论的帖子时,它会将我带到所有帖子的索引页面,而不是特定帖子的显示页面。这是我遇到<td><%= link_to review.post.title , posts_path(@post) %></td>问题的代码行 。这是我的代码:

视图/页/ dashboard.html.erb

<div class="align-left">



<div class="col-md-2">
<h5><%= @user.name %></h5>


</div>
<div class="col-md-5">
<h3>My Posts</h3>

<table class="table table-hover">
      <thead>
        <tr>
          <th>Name</th>
          <th>Created</th>
          <th></th>
        </tr>
      </thead>
      <tbody>
      <% @posts.each do |post| %>
        <tr>
          <td><%= post.title %></td>
          <td><%= time_ago_in_words(post.created_at) %> ago</td>
          <td><%= link_to "Edit", edit_post_path(post) %>|<%= link_to "Destroy", post_path(post), method: :delete %></td>
        </tr>
      <% end %>
      </tbody>
    </table>

</div>

<br>

<h3>My Reviews</h3>
<table class="table table-hover">
      <thead>
        <tr>
          <th>Place</th>
          <th>Created</th>
          <th></th>
        </tr>
      </thead>
      <tbody>
      <% @reviews.each do |review| %>
        <tr>
         <td><%= link_to review.post.title , posts_path(@post) %></td> 
        <td><%= time_ago_in_words(review.created_at) %> ago</td>
        </tr>
      <% end %>
      </tbody>
    </table>
</div>

</div>

Rake路线文件

enter image description here

3 个答案:

答案 0 :(得分:1)

应为<%= link_to review.post.title, post_path(@post) %>
或只是<%= link_to review.post.title, @post %>
不是<%= link_to review.post.title, posts_path(@post) %>

答案 1 :(得分:1)

在dashboard.html.erb页面上有一个实例变量@posts而不是@post。 你可以通过review.post发帖,如: -

<td><%= link_to review.post.title , post_path(review.post) %></td> 

此外,您可以这样做,而不是一次又一次地进行呼叫关联: -

<% @reviews.each do |review| %>
    <tr>
    <% review_post = review.post %>
     <td><%= link_to review_post.title , post_path(review_post) %></td> 
    <td><%= time_ago_in_words(review.created_at) %> ago</td>
    </tr>
<% end %>

答案 2 :(得分:0)

您尚未正确检查路线: enter image description here

posts_path用于index方法,show方法用post_pathid或对象。

使用:

<td><%= link_to review.post.title , post_path(@post) %></td>