Я хочу создать поисковый выбор, который будет работать с уникальными именами посредством группировки ...
Цель - найти дубликаты для последующего использования в качестве параметра поиска.
Я хочу найти LineItem
:store_title
, которые соответствуют, чтобы я мог создать выпадающий список для поиска по LineItem
, которые соответствуют конкретным :store_title
.
Пример: LineItem DB:
line_item.title = "Hello"
line_item.title = "Hello"
line_item.title = "Okay"
line_item.title = "Bar"
Я хочу иметь выпадающий тег select_tag при поиске следующего:
[select]
"Hello"
- "Хорошо"
- "Бар"
И добавьте все результаты, которые соответствуют LineItem.title
из выбранных.
Я попробовал несколько способов:
Мне до сих пор удавалось заставить уникальное выпадающее поле выбора работать, но я не уверен, что это правильный путь, потому что он создает массив:
Контроллер:
@vendor_line_items = LineItem.where(vendor_id: @vendor.id).select(:store_title).group(:store_title).distinct
if params[:search]
@orders = Order.line_item_search(params[:search]).joins(:line_items).where(line_items: {vendor_id: @vendor.id})
end
ORDS Модель:
def self.line_item_search(search)
scope = joins(:line_items)
line_items = scope.where(line_items: { id: LineItem.where(store_title: "#{search.downcase}") })
line_items
end
Просмотр:
<%= form_tag vendor_orders_path, :method => 'get' do %>
<%= collection_select(:search, params[:search], @vendor_line_items, :store_title, :store_title, {}, {class: "form-control-sm col-5"})%>
<%= submit_tag "Search", :name => nil, class: "btn btn-primary btn-sm" %>
<% end %>
Ошибка:
Неопределенный метод 'downcase' для ["store_title"]: Array:
Могу ли я изменить свою модель, чтобы разрешить массив, или я должен найти уникальные названия магазинов другим способом?