значение параметра раскрывающегося списка к нулю - PullRequest
2 голосов
/ 03 ноября 2010

У меня есть выпадающий список с несколькими значениями переключателей на выбор.Если вы не выберете опцию, значение будет сохранено в базе данных как ноль.Но если вы выберете опцию, вы не сможете ее снять.Поэтому вместо раскрывающегося списка мне нужна опция «не указано», которая бы сохраняла значение в базе данных как ноль.

Как я могу наилучшим образом изменить эти настройки, чтобы сохранить значение NULL в базе данных.Мне нужно изменить этот код ниже, чтобы появилось дополнительное значение «not selected», а когда выбрано «not selected», значение null будет сохранено в базе данных

<%= account_pref.input "editorial_#{key}".to_sym, :as => :radio, :collection => options_for(Editorial, key.to_sym), :wrapper_html => { :class => "compact" }, :label => key.titleize  %>

1 Ответ

1 голос
/ 03 ноября 2010

Думаю, это должна делать только пустая строка.

:collection => [['<none>','']] + options_for(Editorial, key.to_sym)

Это сработало для меня с целочисленным полем, для строкового поля это может быть сложнее, поскольку значения параметров могут быть только строками, а на самом делеконцепция нулевых значений в формах.Может быть, кто-то знает хитрый трюк, но вы всегда можете разобраться в нем в контроллере:

def create
  @account = Account.new(params[:account])
  @account.editorial = nil if @account.editorial.empty?

  ...
end

Или, возможно, переопределить сеттер в вашей модели, чтобы сделать то же самое.Однако любой из этих вариантов выглядит хакерским.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...