带有嵌套路由的pg_search

时间:2015-11-05 17:41:10

标签: ruby-on-rails pg-search

我第一次安装了pg_search,我正在尝试创建一个搜索Books和Chapters。这些是嵌套路由。

routes.rb中:

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

pgsearch结果显示信息的链接,但章节链接显示/章节/ 17,何时显示/ books / 50 / chapter / 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

如何获得正确的路线?

2 个答案:

答案 0 :(得分:1)

我认为您的link_to路径缺少父对象,以便形成正确的网址。由于路由器需要格式为books/:id/chapters/:id的网址,因此我们还需要将link_to传递给书籍对象。

试试这个:

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

答案 1 :(得分:0)

我想,您需要尝试searching through associations 或检查类似的question