Ruby 嵌套表单的未知属性错误-Rails 3.2

Ruby 嵌套表单的未知属性错误-Rails 3.2,ruby,ruby-on-rails-3.2,nested-attributes,Ruby,Ruby On Rails 3.2,Nested Attributes,我有一个活动模型和一个场地模型。每个活动有一个场地。但一个场地可以有多个活动。作为活动创建过程的一部分,我还希望捕获有关场馆的信息并将其存储。现在,我正在努力进行嵌套表单设置。我得到以下错误: ActiveRecord::UnknownAttributeError in EventsController#new unknown attribute: event_id 事件模型 class Event < ActiveRecord::Base attr_accessible :name,

我有一个活动模型和一个场地模型。每个活动有一个场地。但一个场地可以有多个活动。作为活动创建过程的一部分,我还希望捕获有关场馆的信息并将其存储。现在,我正在努力进行嵌套表单设置。我得到以下错误:

ActiveRecord::UnknownAttributeError in EventsController#new
unknown attribute: event_id
事件模型

class Event < ActiveRecord::Base
attr_accessible :name, :budget, :user_id, :venue_id, :client, :date, :description, 
:attendees, :assets_attributes, :tag_list, :venue_attributes
belongs_to :user

has_many :assets, :dependent => :destroy
has_many :vendors
has_one :venue

accepts_nested_attributes_for :assets, :allow_destroy => true
accepts_nested_attributes_for :vendors, :allow_destroy => true
accepts_nested_attributes_for :venue, :allow_destroy => true
acts_as_taggable
end
表格(摘录)




我想你把这段感情搞错了。场馆模型应具有多个:事件,且事件模型应具有属于:场馆和名为场馆id的字段


并且去掉了一个:来自活动模型的场馆和属于:来自活动模型的场馆。

插入了一条空白记录,但场馆名称字段没有填充到场馆表中,你知道为什么吗?我是否需要将任何内容传递到@event.create_venue()?创建表单时需要传递事件对象。这里的(@event)do | f | f.fields_的(:场馆)do | ff | f.fields的表格。结束并从控制器中删除build_venue()和create_venue()方法。使用嵌套属性时不需要这些属性。如果我去掉build_venue(),则“场馆”字段不会显示在表单中。删除create_venture()确实解决了这个问题。非常感谢!!
class Venue < ActiveRecord::Base
attr_accessible :capacity, :city, :contact, :country, :email, :exclusiveVendors,:fee, 
:latitude, :longitude, :name, :state, :street, :tel, :union
belongs_to :event
has_many :vendors
acts_as_gmappable
has_many :events
end
def new
  @event = Event.new
  5.times { @event.assets.build }
  venue = @event.build_venue()
  # respond_to do |format|
  #   format.html # new.html.erb
  #   format.xml  { render :xml => @event }
  # end

end

def create
  @user = current_user
  @event = Event.new(params[:event])
  @event.create_venue()

  5.times { @event.build_assets}
  if @event.save
    redirect_to @event, :notice => "Successfully created event."
  else
    render :action => 'new'
  end
end
<%= f.fields_for :venue do |builder| %>

    <%= builder.label :name %><br />
    <%= builder.text_field :name %>

<% end %>