我有一个事件和活动。每个事件都有一个活动,用户需要从大量活动中进行选择。我有一个collection_select 字段可以在事件表单中正确显示,但它不会保存。我不断收到Couldn't find Activity without an ID
错误消息。
我认为通过在我的模型中创建 has_one belongs_to 关联,表单会自动知道要做什么。没有。所以我开始向事件控制器添加方法,甚至不知道它们是否正确。但事情并没有破裂。
现在我在想我可能需要在表单中创建一个局部变量,但我已经尝试了十几种变体,但没有任何效果。我最终会收到其他错误消息。
我的事件模型
class Event < ActiveRecord::Base
attr_accessible :date, :activity
has_one :activity
belongs_to :creator, :class_name => "User"
has_many :attendees, :class_name => "User"
has_many :comments
end
活动模式
class Activity < ActiveRecord::Base
attr_accessible :location, :title, :image, :image_cache
mount_uploader :image, ImageUploader
belongs_to :event
end
事件控制器的一部分
def new
@event = Event.new
@activities = Activity.find(:all, :order => 'title')
end
def create
@event = Event.new(params[:event])
@activities = Activity.find(:all, :order => 'title')
@activity = Activity.find(params[:id])
end
活动表格
<div class="field">
<h6>When do you want to go?</h6><br />
<%= f.text_field :date %>
</div>
<h5>Activities</h5>
<%= collection_select(:activity, :event_id, Activity.all, :id, :title, {:include_blank => 'Please Select'} ) %>
<div class="actions">
<%= f.submit %>
</div>
我的无知在哪里?