2016-11-24 2 views
0

Я на следующиеRails - Ransack не запрашивают

Sale.rb

belongs_to :client 
belongs_to :user 

has_many :line_items, dependent: :destroy 
has_many :products, through: :line_items 
has_many :deposits 

accepts_nested_attributes_for :line_items, reject_if: :all_blank, allow_destroy: true 

sales_controller.rb

def index 
    @q = Sale.ransack(params[:q]) 
    @sales = @q.result(distinct: true) 
end 

просмотров/администратора/продажи/index.html.erb

<%= search_form_for @q, url: admin_sales_path, html: {class: "form-inline"} do |f| %> 

    <%= f.search_field :sku, placeholder: "SKU", class: "input perfil" %> 
    <%= f.submit 'search', class: "btn btn-primary" %> 

<% end %> 

<table class="table"> 
    <thead> 
    <tr> 
     <th><%= sort_link @q, :sku, "SKU" %></th> 
     <th colspan="3"></th> 
    </tr> 
    </thead> 

    <tbody> 
    <% @sales.each do |sale| %> 

    ... 
    <% end %> 
    </tbody> 
</table> 

И, наконец, это l og от терминала:

Started GET "/admin/sales?utf8=%E2%9C%93&q%5Bsku%5D=sample&commit=search" for ::1 at 2016-11-24 00:29:33 -0600 
Processing by Admin::SalesController#index as HTML 
Parameters: {"utf8"=>"✓", "q"=>{"sku"=>"sample"}, "commit"=>"search"} 
Sale Load (0.3ms) SELECT DISTINCT "sales".* FROM "sales" 
Rendered admin/sales/index.html.erb within layouts/admin (7.5ms) 
Completed 200 OK in 361ms (Views: 346.0ms | ActiveRecord: 1.6ms) 

Все, кажется, работает нормально, но ничто не фильтруется.

Как примечание, я применяю этот же метод для других моделей, и они работают нормально.

+0

<% = f.search_field: sku_eq, placeholder: "SKU", класс: "input perfil"%> Попробуйте –

+0

wow Мне стыдно, ошибка начального уровня, вы правы, проблема в следующем: sku_eq (окончание "_eq"). Благодарю. – user3754535

+0

добавив его в решение, пожалуйста, accpet –

ответ

1

Пожалуйста, используйте этот

<%= f.search_field :sku_eq, placeholder: "SKU", class: "input perfil" %> 

У вас есть немножко ошибку

0

Ответ был прост: на взгляды/администратора/продажи/index.html.erb

... 
    <%= f.search_field :sku_eq, placeholder: "SKU", class: "input perfil" %> 
    ... 

I забыл набрать «_eq», заканчивающийся на f.search_field: sku _eq

+0

Я думаю, что я только что дал ответ ниже, он считает, что это хорошо, чтобы принять это как решение вместо того, чтобы добавлять дубликат, щелкните правой кнопкой мыши –