我是ROR的新手,所以這可能是一個非常簡單的問題。Ruby on Rails:Ransack undefined method'result`
我剛剛爲我的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)
THIRD編輯:
另一個錯誤:/
未定義的方法` schema_cache'
隨着提取源在我的項目控制器在該行
@q = Project.search(params[:q])
你正在使用什麼類型的數據庫? – 2012-07-20 09:56:01
sqlite3。當我剛開始製作我的應用程序時,我運行scaffold命令時,我剛剛離開了默認數據庫 – Jazz 2012-07-20 09:58:44