2016-12-15 4 views
0

Я использую Ransack, и он отлично работает на нашей модели данных. Теперь проблема заключается в том, что в раскрывающемся списке он показывает нам все 15 вариантов, таких как id, имя, возраст, пол, тип, местоположение, SSN, компания, статус и т. Д.Выпадающие варианты Limit Ransack

Я хочу только 3 варианта, которые будут показаны в drop down say name, gender и location (все это текстовые поля). Как мне это сделать ?

data_controller.rb

@search = Data.search(params[:q].try(:merge, m: 'or')) 
@datum = @search.result(:distinct=>true).paginate(page: params[:page], per_page: 30) 

data.html.erb

<div class="row"> 
     <div class="col-lg-10"> 
      <div class="form_search"> 
       <%= search_form_for @search, url: search_data_index_path, html: { method: :get, class: "data_search" } do |f| %> 
       <%= f.condition_fields do |c| %> 
       <%= render "condition_fields", f: c %> 
       <% end %> 
       <p><%= link_to_add_fields "Add Conditions", f, :condition %></p> 
       <br> 
       <div class="actions"> 
        <%= f.submit "Search", :class => "btn btn-primary" %> 
       </div> 
       <% end %> 
      </div> 
     </div> 
    </div> 

Благодаря

ответ

0
def self.ransackable_attributes(auth_object = nil) 
if auth_object == 'admin' 
    super 
else 
    #mention all the attributes u wish to search 
    super & ['assigned_to'] 
end 
end 

По умолчанию все атрибуты модели считаются ransackable атрибутами. Чтобы отменить его, добавьте вышеуказанный метод в модель

Смежные вопросы