我按照这个railscast 在我的应用程序上实现搜索,但是在提交搜索时,页面呈现为空白。
这是我的show.html.erb
<div class"row">
<div class="span12">
<h1>Resultados para <%= @search.keywords %>: <%= @search.noticias.size %></h1>
</div>
</div>
和我的search.rb
class Search
include Mongoid::Document
include Mongoid::Timestamps
field :keywords, type: String
def noticias
@noticias ||= find_news
end
private
def find_news
noticia = Noticia.fulltext_search(keywords)
noticia
end
结尾
这是html输出:
<h1>Resultados para : 0</h1>
我很确定我在这里遗漏了一些愚蠢的东西,但我看不到
编辑
search_controller.rb
class SearchesController < ApplicationController
def new
@search = Search.new
end
def create
@search = Search.create!(params[:search])
redirect_to @search
end
def show
@search = Search.find params[:id]
end
end
实际上,搜索是保存在 mongodb 上的,所以我认为我不会错过keyword
任何地方,因为该应用程序仅在我将当前关键字保存到模型并显示当前搜索模型后才进行搜索
表格
<%= form_for Search.new, :html => { :class => "navbar-search pull-right"} do |f| %>
<input type="text" class="span2 search-query" placeholder="Pesquisar notícias" name="search[keyword]">
<% end %>