2015-11-05 5 views
1

Я установил pg_search в первый раз, и я пытаюсь создать поиск книг и разделов. Это вложенные маршруты.pg_search с вложенными маршрутами

routes.rb:

resources :books do 
    resources :chapters, except: [:index] 
end 

результаты pgsearch отображать ссылки на информацию, но главы ссылаются шоу/глав/17, когда он должен отображать/книги/50/разделов/17.

вид поиска индекс:

<h2> 
<% @pg_searches.each do |pg_search| %> 
    <p> <%= link_to pg_search.searchable.title, pg_search.searchable %> </p> 
<% end %> 
<h2> 

SearchesController

class SearchesController < ApplicationController 

def index 
    @pg_searches = PgSearch.multisearch(params[:query]) 
end 
end 

chapter.rb

include PgSearch 
multisearchable :against => [:title, :body] 

book.rb

include PgSearch 
multisearchable :against => [:title, :description] 

Вот сообщение об ошибке:

Не удалось найти книгу без ID

def show 
**@book = Book.find(params[:book_id])** 
@chapters = Chapter.all 
@chapter = Chapter.find(params[:id]) 
@table_of_contents = @chapter.table_of_contents 

Как получить правильные маршруты?

ответ

1

Я думаю, что ваш link_to путь отсутствует родительский объект для того, чтобы сформировать правильный URL. Поскольку маршрутизатор хочет получить URL-адрес формы books/:id/chapters/:id, нам также необходимо передать link_to для главы книжного объекта.

Попробуйте это:

https://gist.github.com/MichaelCPell/08fb6af5c27b0466366f

+0

Это сделало трюк! – jgrant

Смежные вопросы