路线编辑未找到的视图

时间:2013-03-05 18:15:09

标签: ruby-on-rails ruby ruby-on-rails-3.2

我目前正在尝试查看我的某个网站资源的索引,无论我尝试过什么,都无法找到编辑路线。它一直在给我:

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

1 个答案:

答案 0 :(得分:1)

如果您在路径路径上指定params名称,如下所示:

<td><%= link_to 'Edit', edit_user_post_path(:user_id => @user.id, :id => @post.id) %></td>