私は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
2番目の編集:
サーバーを再起動していませんでした。私は今別のエラーがあります。
未定義のメソッド「結果」
抽出されたソースがプロジェクト コントローラーのこの行にある
@project_search = @q.result(:distinct => true)
3番目の編集:
別のエラー:/
未定義のメソッド「schema_cache」
抽出されたソースがプロジェクト コントローラーのこの行にある
@q = Project.search(params[:q])