私の検索フォームをメッセージページにリダイレクトするのではなく、すべてのURLで機能させたいと思います。私のアプリケーションビュー(ブートストラップスタイリング)でパスのないRails検索フォーム
on /messages return /messages?utf8=✓&search=hi&commit=Search
on /posts return /posts?utf8=✓&search=hi&commit=Search
:
<%= form_tag(messages_path, :method => "get", class: "navbar-form navbar-left") do %>
<div class="form-group">
<%= text_field_tag :search, params[:search], placeholder: "Search", class: "form-control" %>
</div>
<%= submit_tag "Search", class: "btn btn-default" %>
<% end %>
メッセージコントローラ:
def index
if params[:search]
@messages = Message.search(params[:search]).order("created_at DESC")
else
@messages = Message.all.order("created_at DESC")
end
end
ユーザーコントローラ:
def index
if params[:search]
@users = User.search(params[:search]).order("created_at DESC")
else
@users = User.all.order("created_at DESC")
end
end
"HI" の検索の例
メッセージモデル:
def self.search(search)
where("title LIKE ?", "%#{search}%")
end
Userモデル:
def self.search(search)
where("username LIKE ?", "%#{search}%")
end
私はコピーして、ページ上にパラメータ(?utf8=✓&search=hi&commit=Search)
を貼り付けた場合、彼らは正常に動作。フォームからmessages_path
を削除しようとしましたが、エラーが発生しました。どのコントローラーを使用しているかに基づいて変更されるフォームパスを使用するにはどうすればよいですか?
ありがとう、美しく動作します! – Robert