Ruby on Rails は初めてで、初めてのサイトを作成しています。firstname
、lastname
およびの 3 つの列を持つユーザー モデルがありemail
ます。私はランサックを使用して検索エンジンを作成しています。すべての列を通過して結果を表示する 1 つの検索フィールドが必要です。
次のようなuser_controller.rbを作成しました。
@q = User.search(params[:q])
@users = @q.result(:distinct => true)
そして、私のUser\index.html.erbは次のようになります。
<%= search_form_for @search do |f| %>
<div class="field">
<%= f.label :firstname_cont , "Firstname" %>
<%= f.text_field :firstname_cont %>
<%= f.label :lastname_cont , "Lastname" %>
<%= f.text_field :lastname_cont %>
<%= f.label :email_cont , "Email" %>
<%= f.text_field :email_cont %>
</div>
<div class="actions"><%= f.submit "Search" %></div>
<% end %>
3 つの検索フィールドが表示されますが、名前、姓、電子メールを通過するフィールドが 1 つだけ必要です。
編集 1: さらにテストした結果、検索フィールドで名と姓の両方、または空白を処理できないことがわかりました。次のような helper_method を作成できることを読みました: Ransack で複数のフィールドを検索する
そして、検索結果を取得すると、モデル インデックスなどにスローされます: user / index. これはどこで変更できますか?
しかし、ビューでそれを使用する方法については何もありません。どうしてただうなずくのがとても難しいのですか、これがあなたのすることです:コントローラーでこれを行います->モデルでこれを行います->ビューでこれを行います->そして、このようにルートを修正することを忘れないでください->