2

如何指示 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。我试图传递条件哈希映射无济于事。

4

2 回答 2

2

这是一个两步过程。

首先,您需要一种仅选择活跃人员的方法。接下来,您需要通过 :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
于 2009-12-05T08:17:03.043 回答
0

您可以通过 :collection 选项提供任何自定义值集合:

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

于 2009-12-05T11:23:11.793 回答