Как высушить этот условный collection_select в частичной форме?

У меня есть партиал формы, который вызывается в content_for :sidebar. Этот collection_select должен иметь «выбранный», если страница, вызывающая партиал, является определенной страницей пакета. В противном случае он должен иметь «подсказку» для выбора. Как бы мне высушить это? Я пробовал встроенный троичный код для одного collection_select безрезультатно.

<%- if @package.blank? -%>
    <%= f.collection_select :package_name, Package.all, :name, :name, :prompt => "Please Select"  %>
<%- else -%>
    <%= f.collection_select :package_name, Package.all, :name, :name, :selected => @package.name %>
<%- end -%>

Спасибо


person Matt    schedule 17.08.2010    source источник


Ответы (1)


Как насчет:

<%= f.collection_select :package_name, Package.all, :name, :name, 
      @package.blank? ? { :prompt => "Please Select" } : { :selected => @package.name } %>
person Shadwell    schedule 17.08.2010
comment
Хм... не совсем. Это то, что я пробовал раньше, и все равно получаю синтаксическую ошибку. - person Matt; 17.08.2010
comment
Я понял. Условные параметры должны быть указаны в виде хэша с фигурными скобками. Это правильный синтаксис: ‹%= f.collection_select :package_name, Package.all, :name, :name, @package.blank? ? {:prompt =› Пожалуйста, выберите} : {:selected =› @package.name} %› - person Matt; 17.08.2010