我有一个Activity
表和一个Client
表。它们通过表链接(一个客户可以有几个活动,一个活动可以有多个客户)
我对我的项目稍作修改,要求我将Activity
的start_date和end_date添加到链接表中。(更容易重复使用)
保存意味着有些不同。我仍然有<%= f.text_field :start_date %>
和enddate formfields。我想我可以保留那些(?)。
我更改了控制器并从params方法中删除了:start_date
和:end_date
。但我无法弄清楚如何将它们保存到activities_clients
表。
我试过了:
@activity = Activity.new(activity_params)
@activity.start_date = params[:start_date]
@activity.end_date = params[:end_date]
但这给了我super: no superclass method start_date=' for #<Activity:0x6041d60>
我是如何将开始和结束日期添加到activities_clients
表的?
答案 0 :(得分:2)
我认为你所需要的是一个有很多:通过关联(见http://guides.rubyonrails.org/association_basics.html#the-has-many-through-association)
由于您已将start_date
和end_date
属性移至连接表,因此您可能无法再在Activity
类的实例上调用它们。这是因为底层模型不再具有这些列。
您需要在中间实例上设置它们(假设您的模型类名为ActivityClient):
ActivityClient.create!(
start_date: ...,
end_date: ...,
client: ...,
activity: ...)
答案 1 :(得分:0)
在您的控制器中,请添加
@activity.save