2016-07-22 3 views
0

У меня возникла проблема с установкой заполнителя в форме выбора выпадающего списка с помощью рельсов select_tag helper. Используя быстрый вариант заполнитель существует, но этот метод дает мертвое повторяющееся значение в выпадающем списке, что вы не можете нажать:Проблемы с раскрывающимся списком select_tag с подсказкой

duplicate_dropdown

Вот мой код:

@posts = Post.all 
@categories = Post.uniq.pluck(:category) 
@prompt = "Select Category" 

if params[:category] 
    @posts = Post.where(category: params[:category]) 
    @prompt = params[:category] 
end 

<%= form_tag(h_path, :method => "get") do %> 
    <%= select_tag 'category', options_for_select(@categories), {onchange: "this.form.submit();", prompt: @prompt} %> 
<% end %> 

Любых идеи или В этой связи были бы весьма полезны предложения относительно того, чтобы сделать работу с заполнителем. Я хорошо понимаю что-то наподобие категории dropdown. Пример выбора на этой странице: http://www.joeabercrombie.com/category/audiobooks/

ответ

0

Что вам нужно, это не подсказка. Запрос - это сообщение пользователю, показывающее, что означает это раскрывающееся меню. На примере вашей страницы Audible в раскрывающемся списке «Выбор категории» выберите приглашение.

Вам нужно установить выбранный параметр. Вы хотите выбрать опцию из существующих опций выбора, если установлено params[:category]. В этом случае переименуйте переменные и передайте опцию «быть выбранным» в options_for_select из select_tag помощник.

@posts = Post.all 
@categories = Post.uniq.pluck(:category) 
@prompt = "Select Category" 

if params[:category] 
    @posts = Post.where(category: params[:category]) 
    @selected_category = params[:category] 
end 

<%= form_tag(h_path, :method => "get") do %> 
    <%= select_tag 'category', options_for_select(@categories, @selected_category), {onchange: "this.form.submit();", prompt: @prompt} %> 
<% end %> 

Ссылка: select_tag (ActionView::Helpers::FormTagHelper) - APIdock

0

Вы можете непосредственно передать params[:category] как уже выбранное значение select_tag

А также двигаться uniq до конца line:2

@posts = Post.all 
@categories = Post.pluck(:category).uniq 

if params[:category] 
    @posts = Post.where(category: params[:category]) 
end 

<%= form_tag(h_path, method: :get) do %> 
    <%= select_tag :category, options_for_select(@categories, params[:category]), onchange: "this.form.submit();", prompt: "Select Category" %> 
<% end %> 
Смежные вопросы