在Rails 3中使用has_many嵌套表单的belongs_to父表单

时间:2011-08-09 04:20:40

标签: ruby-on-rails ruby-on-rails-3 nested-forms

缩写模型:

class Event < ActiveRecord::Base
  belongs_to :place
  accepts_nested_attributes_for :place  
end

class Place < ActiveRecord::Base
  has_many :events  
end

缩略事件控制器:

  def new
    @event = Event.new
    @event.build_place

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

    respond_to do |format|
      if @event.save

缩略图:

<%= form_for(@event) do |f| %>
<%= fields_for @event.place do |place_f| %>

鉴于上述情况...... 我希望用户能够创建一个事件。当他们创建活动时,他们可以选择添加地点。该地方可能存在也可能不存在于数据库中。

目前,该地点未在表单提交时关联或创建,但肯定在帖子参数中。

对我做错了什么的任何想法?这适用于Rails 3。

1 个答案:

答案 0 :(得分:0)

如果您不想让用户填充地点属性,请从控制器中的@event.build_place操作中删除new

def new
  @event = Event.new
end

并从您的视图中移除<%= fields_for @event.place do |place_f| %>块。