Отображение условных значений в выборке Formtastic - PullRequest
2 голосов
/ 05 декабря 2009

Как мне дать команду Formtastic select отображать только значения, основанные на условии?

- semantic_form_for @member do |f|
  - f.inputs do
    = f.input :person
    = f.input :role, :include_blank => false
    = f.input :active

Я только хочу, чтобы: person вводил в список / выбирал людей, которые являются активными, т.е. Я пытался передать хэш-карту условий безрезультатно.

Ответы [ 2 ]

2 голосов
/ 05 декабря 2009

Это двухэтапный процесс.

Для начала вам нужно выбрать только активных людей. Затем вам нужно передать эту коллекцию активных людей в формулярный ввод с помощью опции: collection.

Шаг первый, выбирая только активных людей: это так же просто, как Person.find(:all, :conditions ["active = ?", true]). Но я думаю, что это лучше сделать с помощью именованной области в модели.

class Person < ActiveRecord::Base
  # ...
  named_scope :active, :conditions => {:active => true}
end

Теперь Person.active совпадает с Person.find(:all, :conditions ["active = ?", true])

Шаг второй, обновление формы:

- semantic_form_for @member do |f|
  - f.inputs do
    = f.input :person, :collection => Person.active
    = f.input :role, :include_blank => false
    = f.input :active
0 голосов
/ 05 декабря 2009

Вы можете указать любой пользовательский набор значений с помощью параметра: collection:

f.input :person, :collection => Person.find(:all, :conditions => "whatever")

...