私はRails 3.1で、Ransack Gemを使用しています。これは私が私のコントローラに持っているものです。返信0 records metasearch
@q = Person.search(params[:q])
@people = @q.result
これは私が私の見解で持っているものです。
<%= search_form_for @q do |f| %>
<label>Given Name:</label>
<%= f.text_field :given_name_cont %>
<label>Family Name:</label>
<%= f.text_field :family_name_cont %>
<%= f.submit %>
<% end %>
これがうまく機能して掻き回すドキュメントごとです。ただし、検索フォームにパラメータが含まれていない場合(つまり、検索する指定がない場合)は、ALLというレコードが返されます。何が起こりたいのですかNOレコードが返されました。
Rubyがかなり弱いので、params [:q]がないか、params [:q]が検索条件を指定していない(つまり、ユーザーが送信した)空のフォーム)。
本質的に私の質問はMetasearch question on StackOverFlowと同じですが、解決策は "search_attributes"が利用可能な方法ではないと不平を言うRansackにとってはうまくいかないようです。
パラメータが提出されず、空のパラメータがサブミットされた状態で0レコードが返されることが重要です。あなたのコードがなぜうまくいくのかを説明しているノートは良いでしょう。ありがとう。
おかげで完璧に動作します。 #nil.blankの説明は?と[] .blank?また役立った。 – Oscar