如何指示 Formtastic 选择仅根据条件显示值?
- semantic_form_for @member do |f|
- f.inputs do
= f.input :person
= f.input :role, :include_blank => false
= f.input :active
我只希望 :person 输入列出/选择活跃的人,即 person.active == true。我试图传递条件哈希映射无济于事。
如何指示 Formtastic 选择仅根据条件显示值?
- semantic_form_for @member do |f|
- f.inputs do
= f.input :person
= f.input :role, :include_blank => false
= f.input :active
我只希望 :person 输入列出/选择活跃的人,即 person.active == true。我试图传递条件哈希映射无济于事。
这是一个两步过程。
首先,您需要一种仅选择活跃人员的方法。接下来,您需要通过 :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
您可以通过 :collection 选项提供任何自定义值集合:
f.input :person, :collection => Person.find(:all, :conditions => "whatever")