我目前正在尝试查看我的某个网站资源的索引,无论我尝试过什么,都无法找到编辑路线。它一直在给我:
No route matches {:action=>"edit", :controller=>"posts", :user_id=>nil, :id=>nil}
index.html.erb
<h1>Listing posts</h1>
<table>
<tr>
<th>Postname</th>
<th>Postcontent</th>
<th>Poster</th>
<th></th>
<th></th>
<th></th>
</tr>
<% @posts.each do |post| %>
<tr>
<td><%= post.postname %></td>
<td><%= post.postcontent %></td>
<td><%= post.poster %></td>
<td><%= link_to 'Show', user_posts_path %></td>
<td><%= link_to 'Edit', edit_user_post_path(@user,@post) %></td>
<td><%= link_to 'Destroy', user_posts_path, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</table>
<br />
<%= link_to 'New Post', new_user_post_path %>
控制器:
class PostsController < ApplicationController
# GET /posts
# GET /posts.json
def index
@posts = Post.all
@users = User.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @posts }
end
end
路线:
resources :users do
resources :posts
end
rake路线输出:
user_posts GET /users/:user_id/posts(.:format) posts#index
POST /users/:user_id/posts(.:format) posts#create
new_user_post GET /users/:user_id/posts/new(.:format) posts#new
edit_user_post GET /users/:user_id/posts/:id/edit(.:format) posts#edit
user_post GET /users/:user_id/posts/:id(.:format) posts#show
PUT /users/:user_id/posts/:id(.:format) posts#update
DELETE /users/:user_id/posts/:id(.:format) posts#destroy
users GET /users(.:format) users#index
POST /users(.:format) users#create
new_user GET /users/new(.:format) users#new
edit_user GET /users/:id/edit(.:format) users#edit
user GET /users/:id(.:format) users#show
PUT /users/:id(.:format) users#update
DELETE /users/:id(.:format) users#destroy
root / home#index
答案 0 :(得分:1)
如果您在路径路径上指定params名称,如下所示:
<td><%= link_to 'Edit', edit_user_post_path(:user_id => @user.id, :id => @post.id) %></td>