在Formtastic选择中显示条件值

时间:2009-12-05 07:52:59

标签: ruby-on-rails formtastic

如何指示Formtastic选择仅根据条件显示值?

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

我只希望:人员输入列出/选择活跃的人,即person.active == true。我试图传递条件哈希映射无效。

2 个答案:

答案 0 :(得分:2)

这是一个两步过程。

首先,您需要一种仅选择活跃人物的方法。接下来,您需要通过:collection选项将活动人员集合传递给formtastic输入。

第一步选择活跃的人:这就像Person.find(:all, :conditions ["active = ?", true])一样简单。但我认为使用模型中的命名范围可以更好地完成。

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

现在Person.activePerson.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

答案 1 :(得分:0)

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

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