我第一次安装了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
如何获得正确的路线?
答案 0 :(得分:1)
我认为您的link_to
路径缺少父对象,以便形成正确的网址。由于路由器需要格式为books/:id/chapters/:id
的网址,因此我们还需要将link_to
传递给书籍对象。
试试这个:
答案 1 :(得分:0)
我想,您需要尝试searching through associations 或检查类似的question