0

だから、私は検索フォームを持っていて、検索は明らかにどのページからでも利用できます。アプリケーションコントローラーからのそのようなアクションがレイアウト/ビューフォルダーに配置されることは理にかなっていると思いました。しかし、私は理解できません-Railsはそれを認識しません。だから私はこれを行うことはできませんか?では、どのページからでも利用できるアクションをどのように提供すればよいでしょうか? コード:

def tests_search
  @tests=Test.test_search(params[:query])

  respond_to do |format|
  format.html
  end
  end

ルート:

 search_tests GET    /search_tests(.:format)             application#tests_search

形:

 <%= form_tag search_tests_path, {:id=>'test_search',:method => :get} do%>

エラー:

  Unknown action

The action 'tests_search' could not be found for ApplicationControllerr
4

3 に答える 3

1

新しい検索コントローラーを作成する必要があります。which を使用して、アクションrails g controller search indexを持つ検索コントローラーを作成しますindex(アクションを のように呼び出すこともできますresult)。次に、次の形式で検索ビュー フォルダーにファイルを追加しsearch/_form.html.erbます。

 <%= form_tag search_path, {:id=>'test_search',:method => :get} do |f| %>

layout/application.html.erbこれを希望する場所にレンダリングします。

<%= render "search/form" %>

このようにして、 を使用しSearchControllerて検索リクエストを処理する検索フォームを任意のページに配置できます。

于 2013-05-10T20:28:52.593 に答える