我是 ROR 的新手,所以这可能是一个非常简单的问题。
我刚刚为我的 Web 应用程序安装了 ransack gem。我想在我的数据库中搜索项目名称和客户。我有一个索引页面视图,用于我的主页,然后是一个搜索页面,它使用我创建的搜索操作。
def index
@projects = Project.all
respond_to do |format|
format.html # index.html.erb
format.json { render :json => @projects }
end
end
def search
@q = Project.search(params[:q])
@project_search = @q.result(:distinct => true)
respond_to do |format|
format.html # search.html.erb
format.json { render :json => @projects }
end
end
这是我的搜索视图的一部分:
<%= search_form_for @q do |f| %>
<%= f.label :project_name %>
<%= f.text_field :project_name %>
<%= f.label :client %>
<%= f.text_field :client %>
<%= f.submit %>
<% end %>
当我尝试加载搜索页面时,我收到此错误:
未定义的方法“搜索”
提取的源代码在我的项目控制器中的这一行
@q = Project.search(params[:q])
希望这是一个简单的解决方法,您可以解释我做错了什么,以便我学习。
任何帮助都将不胜感激。
提前致谢!
编辑:我在上面添加了我的索引操作,以向您展示我有一个索引操作和一个搜索操作。这也是我的 routes.rb 文件。
FinalApp::Application.routes.draw do
resources :projects
match "search" => "projects#search", :as => :search
root :to => 'projects#index'
end
第二次编辑:
我没有重新启动我的服务器。我现在有另一个错误。
未定义的方法“结果”
提取的源代码在我的项目控制器中的这一行
@project_search = @q.result(:distinct => true)
第三次编辑:
另一个错误:/
未定义的方法“schema_cache”
提取的源代码在我的项目控制器中的这一行
@q = Project.search(params[:q])