【发布时间】:2016-04-07 20:15:38
【问题描述】:
我目前正在一个项目中实现搜索功能,我正在努力将其显示在专门的搜索结果页面上。
已经意识到有关此主题的问题但由于完全无能而无法制定解决方案,我要求您提供最后的指针:)。
搜索表单在条目路径和根路径的索引页面上生成。我想将参数传递到新页面 search_path。
这是我的文件:
EntriesController
def search
end
def index
@entries = Entry.all.order('entries.created_at DESC')
@entry = Entry.new # My index page also creates new entries.
if params[:search]
@entries = Entry.search(params[:search]).order("created_at DESC")
else
@entries = Entry.all.order("created_at DESC")
end
型号:entry.rb
def self.search(search)
where("content LIKE ? OR created_at LIKE ?", "%#{search}%", "%#{search}%")
end
routes.rb
Rails.application.routes.draw do
resources :entries
root 'entries#index'
get 'new' => 'entries/new'
get 'show' => 'entries/show'
get 'edit' => 'entries/edit'
get 'search' => 'entries/search'
最后:索引上的表单
<%= form_tag(entries_path, :method => "get", class: "search-form") do %>
<%= text_field_tag :search, params[:search], placeholder: "Search for previous entries..", class: "form-control" %>
<% end %>
当我将 entry_path 更改为 search_path 时,我收到“很抱歉,出了点问题。如果您是应用程序所有者,请查看日志以获取更多信息。” – 因此,我怀疑这是一个路由问题。但是,我似乎无法弄清楚。日志说:
ActionController::RoutingError (uninitialized constant Entries):
唷,很想知道这里发生了什么!已经非常感谢了。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4