Я работаю в 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
, но то же самое.
Есть идеи, что я делаю не так?