投稿のインデックスがあり、それをスライドのインデックスにリンクしたいのですが、何らかの理由でこのエラーが発生し続けます
No route matches {:controller=>"slides"}
これとリンクすると
<%= link_to 'Show Slides', post_slides_path(@post) %>
投稿編集ビューアーで上記の同じリンクを使用すると、問題なく動作するようです....何か提案はありますか?
私は基本的にこれにリンクしたいと思います....../posts/:id/slides 投稿の私のテーブルから
ルート.RB
resources :posts do
resources :slides
end
ポストモデル
class Post < ActiveRecord::Base
attr_accessible :text, :title
has_many :slides, :dependent => :destroy
def self.search(search)
if search
where('Title Like ?' , "%#{search}%")
else
scoped
end
end
スライドモデル
class Slide < ActiveRecord::Base
belongs_to :post
ポストインデックスビュー
<table id="posts" class="table table-striped table-bordered">
<thead>
<tr>
<th>Title</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<% @posts.each do |post| %>
<tr>
<td><%= link_to 'Show Slides', post_slides_path(@post) %>
<td><%= link_to 'Edit', :action => :edit, :id => post.id %></td>
<td><%= link_to 'Destroy', { :action => :destroy, :id => post.id }, :method => :delete, :confirm => 'Are you sure?' %></td>
</tr>
<% end %>
<tbody>
<% end %>
</table>
ポストコントローラー
class PostsController < ApplicationController
def new
@post = Post.new
end
def show
@post = Post.find(params[:id])
end
def index
@posts = Post.search(params[:search]).paginate(:per_page => 10, :page => params[:page])
end
def edit
@post = Post.find(params[:id])
end
スライドコントローラー
class SlidesController < ApplicationController
def index
@post = Post.find(params[:post_id])
@slides = @post.slides.all
end
def show
@post = Post.find(params[:post_id])
@slide = @post.slides.find(params[:id])
end
def new
@post = Post.find(params[:post_id])
@slide = Slide.new
end
def edit
@post = Post.find(params[:post_id])
@slide = Slide.find(params[:id])
end