現在、次のエラーが発生しています。
undefined local variable or method `new_post_path'
私のインデックスページで、モデル設定は次のとおりです。
post.rb:
class Post < ActiveRecord::Base
attr_accessible :postcontent, :poster, :postname
belongs_to :user
end
ユーザー.rb:
class User < ActiveRecord::Base
attr_accessible :email, :password, :username
has_many :posts
end
インデックス ページのテンプレートは次のとおりです。
<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', post %></td>
<td><%= link_to 'Edit', edit_post_path(post) %></td>
<td><%= link_to 'Destroy', post, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</table>
<br />
<%= link_to 'New Post', new_post_path %>
このためのコントローラーは次のとおりです。
def index
@posts = Post.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @posts }
end
end
ルーティングに関しては、私のrake routes
出力は次のとおりです。
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
私のルーティングファイルは次のとおりです。
resources :users do
resources :posts
end
root :to => "home#index"
ただし、注目に値するのは、に関連する他のすべてのテンプレートでこれと同様のエラーが発生することposts#*
です。