link_to 显示页面将我带到索引页面 Rails?
link_to Show page takes me to the index page Rails?
我正在尝试在我的应用程序中设置一个仪表板,其中列出了用户拥有的所有评论。我遇到的问题是,当我单击用户发表评论的 post 时,它会将我带到所有 post 的索引页面,而不是特定 [=] 的显示页面29=]。这是我遇到问题的代码行 <td><%= link_to review.post.title , posts_path(@post) %></td>
.这是我的代码:
views/pages/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 路由文件
应该是<%= link_to review.post.title, post_path(@post) %>
,
或者只是 <%= link_to review.post.title, @post %>
不是 <%= link_to review.post.title, posts_path(@post) %>
.
dashboard.html.erb 页面上有一个实例变量@posts 而不是@post。
你可以通过 review.post 获得 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 %>
您没有正确检查您的路线:
posts_path
用于 index
方法,对于 show
方法,它是 post_path
with id
或对象。
使用:
<td><%= link_to review.post.title , post_path(@post) %></td>
我正在尝试在我的应用程序中设置一个仪表板,其中列出了用户拥有的所有评论。我遇到的问题是,当我单击用户发表评论的 post 时,它会将我带到所有 post 的索引页面,而不是特定 [=] 的显示页面29=]。这是我遇到问题的代码行 <td><%= link_to review.post.title , posts_path(@post) %></td>
.这是我的代码:
views/pages/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 路由文件
应该是<%= link_to review.post.title, post_path(@post) %>
,
或者只是 <%= link_to review.post.title, @post %>
不是 <%= link_to review.post.title, posts_path(@post) %>
.
dashboard.html.erb 页面上有一个实例变量@posts 而不是@post。 你可以通过 review.post 获得 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 %>
您没有正确检查您的路线:
posts_path
用于 index
方法,对于 show
方法,它是 post_path
with id
或对象。
使用:
<td><%= link_to review.post.title , post_path(@post) %></td>