我對使用先進的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/constants。rb –