我遇到的问题与嵌套形式,我相信应该很容易解决,但我找不到它周围的Rails 2.3嵌套属性问题
基本上我有以下关系的方式
event has_many :contacts => through :event_contacts
只要我每次创建新的联系人,嵌套窗体都可以正常工作。
如果我在下拉菜单中包含了一个允许选择嵌套表单中的现有联系人的事件,则会创建一个事件,但contact_id在event_contacts表中为零。
没有接触被创建,因为我张贴的“ID”字段中嵌套的接触。(即.new_record?返回false。)
那么,如何更新event_contacts表,以确保“选择'联系人是否正确关联?
见下文snipbits ...
模式
class Event < ActiveRecord::Base
belongs_to :user
has_many :event_contacts
accepts_nested_attributes_for :event_contacts
has_many :contacts, :through => :event_contacts
accepts_nested_attributes_for :contacts
class EventContact < ActiveRecord::Base
belongs_to :event
belongs_to :contact
accepts_nested_attributes_for :contact
class Contact < ActiveRecord::Base
belongs_to :user
has_many :event _contacts
has_many :events, :through => :event_contacts
查看
- fields_for(@event) do |f|
- f.fields_for :event_contacts do |rc|
- rc.fields_for :contact do |c|
= c.collection_select :id, Contact.all, :id, :name, { :selected => @contact.id || 0 }
= c.hidden_field :user_id, :value => @current_user.id
= c.text_field :first_name
= c.text_field :email
你可以粘贴相关的代码片段吗? – khelll 2009-09-25 09:25:45
嗨已添加模型和查看代码以概述我在做什么 – Dom 2009-09-25 15:20:30