Я работаю в Rails 2, и моя модель выглядит так:
class Site < ActiveRecord::Base
has_many :contacts
def primary_contact
Contact.find :first, :conditions => {:site_id => self,
:primary_contact => true}
end
def primary_contact= new_primary_contact
contact = Contact.find(new_primary_contact)
contact.primary_contact = true
contact.save
end
end
Обратите внимание, что виртуальный атрибут: primary_contact инициализируется в модели, поэтому должно присутствовать значение по умолчанию.
На мой взгляд, форма для @site содержит следующие данные:
<%= form.input :primary_contact, :as => :check_boxes, :collection => (Contact.find(:all, :conditions => {:site_id => @site.id}, :order => "first_name ASC")), :label => false, :include_blank => false %>
Это дает мне список флажков, в которых уже установлен правильный флажок по умолчанию (т. Е. Выбран основной контакт для этого сайта). Однако я хочу, чтобы это было в виде переключателей или раскрывающегося списка, и в этих двух случаях, просто изменив :as => :check_boxes
на :as => :select
или :as => :radio
, значение по умолчанию не выбрано.
Я также пробовал указать коллекцию как :collection => @site.contacts
, но то же самое.
Есть идеи, что я делаю не так?