В моем проекте 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 для предоставления сгруппированного поля множественного выбора, сгруппированного по столбцу «group» с тегами, которые возвращаются методом non_brands. Я пробовал следующее:
= f.input :tags, :required => false, :as => :select, :input_html => { :multiple => true }, :collection => tags, :selected => sel_tags, :group_by => :group, :prompt => false
Но я получаю следующую ошибку:
(неопределенный метод `klass 'для
ноль: NilClass)
Есть идеи, где я иду не так?
Спасибо за внимание:]