【发布时间】:2010-04-06 20:21:38
【问题描述】:
在我的 Rails 项目中,我使用 Formtastic 来管理我的表单。我有一个模型,标签,有一个列,“组”。组列只是一种简单的硬编码方式来组织我的标签。我将发布我的 Tag 模型类,以便您了解它的组织方式
class Tag < ActiveRecord::Base
class Group
BRAND = 1
SEASON = 2
OCCASION = 3
CONDITION = 4
SUBCATEGORY = 5
end
has_many :taggings, :dependent => :destroy
has_many :plaggs, :through => :taggings
has_many :monitorings, :as => :monitorizable
validates_presence_of :name, :group
validates_uniqueness_of :name, :case_sensitive => false
def self.brands(options = {})
self.all({ :conditions => { :group => Group::BRAND } }.merge(options))
end
def self.seasons(options = {})
self.all({ :conditions => { :group => Group::SEASON } }.merge(options))
end
def self.occasions(options = {})
self.all({ :conditions => { :group => Group::OCCASION } }.merge(options))
end
def self.conditions(options = {})
self.all({ :conditions => { :group => Group::CONDITION } }.merge(options))
end
def self.subcategories(options = {})
self.all({ :conditions => { :group => Group::SUBCATEGORY } }.merge(options))
end
def self.non_brands(options = {})
self.all({ :conditions => [ "`group` != ? AND `group` != ?", Tag::Group::SUBCATEGORY, Tag::Group::BRAND] }.merge(options))
end
end
我的目标是使用 Formtastic 提供一个分组多选框,按列分组,“分组”带有从 non_brands 方法返回的标签。我尝试了以下方法:
= f.input :tags, :required => false, :as => :select, :input_html => { :multiple => true }, :collection => tags, :selected => sel_tags, :group_by => :group, :prompt => false
但我收到以下错误:
(未定义的方法 `klass' for nil:NilClass)
任何想法我哪里出错了?
感谢观看:]
【问题讨论】:
标签: ruby-on-rails grouping formtastic drop-down-menu