我有一个模型之间具有以下关系的应用程序:
类 ContentPartner < 用户
has_many :events, dependent: :destroy
has_many :videos, through: :events, dependent: :destroy
课堂视频
belongs_to :event
类事件
has_many :videos, dependent: :destroy
如何创建一个新视频,使其具有正确的 :event_id 和 :content_partner_id 传递给它,而不使用嵌套资源(我不想要)或通过添加 :event_id 和 :content_partner_id 来创建大规模分配安全问题视频 attr_accessible 白名单?
我的控制器是这样的:
def create
@event = Event.find(params[:video][:event_id])
@video = @event.videos.create(params[:video])
if @video.save
flash[:success] = "Video uploaded!"
redirect_to session[:return_to]
else
flash[:error] = "#{@video.errors.messages}"
render new_video_path
end
end
并且我的@videos 表单中没有 hidden_field,我最终得到错误“找不到没有 ID 的事件”
但有:
<%= f.hidden_field :event_id, value: @event.id %>
在我的表单中,我收到错误“无法批量分配受保护的属性:event_id”
是否有第三种方法可以在不使用嵌套资源或不影响大规模分配风险的情况下创建属于某个事件的新视频?