先進的なransack検索を使用するとちょっと混乱します。私はすべてのテーブル名が検索用語として選択できず、すべての述語が使用されていないカスタム検索を行うことを試みています。私はこのためのチュートリアルとしてrailscastを使用しましたが、私は述語の数を制限する方法を見つけることができません。また、言葉遣いとテーブルフィールドの名前を別の言語(ラベルのみ)で使用する可能性はありますか?Ransack gemは述語名とカスタム述語名を選択します
マイ検索フォーム
= search_form_for @q, :url => search_offers_path, :html => { :method => :post } do |f|
= f.condition_fields do |c|
.field
= f.attribute_fields do |a|
= a.attribute_select
= f.predicate_select
= f.value_fields do |v|
= v.text_field :value
= link_to "#{t :destroy}", '#', class: "remove_fields"
= link_to_add_fields "#{t :add}", f, :condition
.field
= t :sort
= f.sort_fields do |s|
= s.sort_select
= f.submit "#{t :search}"
私のコントローラ
def index
select_offers = Offer.where { (user_id != id) & (ended == false) & ((created_at + life_time) > DateTime.now) }
@q = select_offers.search(params[:q])
@offers = @q.result(:distinct => true).page(params[:page])
@q.build_condition
@q.build_sort if @q.sorts.empty?
end
ファンサスな質問と回答、それに誇り、あなたは最近、Ransackの詳細を掘り下げたようですので、私の質問をご覧ください:http://stackoverflow.com/questions/13241481/in-form-sorting -using-ransack-gem-not-working 私は本当にいくつかの助けを使うことができました。ありがとうございました – jlstr
こんにちは、お手数ですが、UNRANSACKABLE_ATTRIBUTES配列の特定のメソッドを除外する方法があるかどうか分かりますか?たとえば、リレーションシップによって作成されたメソッドを除外したいと思います。私の場合、製品は製品タイプに属し、製品タイプはドロップダウンを表示しています。それを削除する方法はありますか?前もって感謝します! – jlstr
ここですべての述語を確認できます:https://github.com/activerecord-hackery/ransack/blob/master/lib/ransack/constantsrb –