Ruby on rails 如何使用嵌套的资源创建操作保存当前用户?

Ruby on rails 如何使用嵌套的资源创建操作保存当前用户?,ruby-on-rails,ruby,model-view-controller,userid,Ruby On Rails,Ruby,Model View Controller,Userid,如何将user\u id设置为当前用户,而不是nil 在错过日期\u控制器中创建操作将@missed\u date设置为例程,该例程提供了例程id。或者我可以将@missed_date设置为current_user,这将提供用户id,但我需要通过创建操作保存这两个id MissedDate.last id: 32, user_id: nil, routine_id: 16, date_missed: Thu, 19 Nov 2015 05:00:00 EST -05:00, creat

如何将
user\u id
设置为
当前用户
,而不是
nil

错过日期\u控制器中创建操作将
@missed\u date
设置为
例程
,该例程提供了
例程id
。或者我可以将
@missed_date
设置为
current_user
,这将提供
用户id
,但我需要通过创建操作保存这两个id

MissedDate.last
 id: 32,
 user_id: nil,
 routine_id: 16,
 date_missed: Thu, 19 Nov 2015 05:00:00 EST -05:00,
 created_at: Fri, 27 Nov 2015 16:57:17 EST -05:00,
 updated_at: Fri, 27 Nov 2015 16:57:17 EST -05:00,

我非常感谢你的帮助

如果我正确理解了问题,则您希望在
创建
操作中为您的
MissedDate
记录设置
用户id

如果正确,则在保存记录之前,只需分配
用户id

例如:

您的创建操作:

  def create
    routine = current_user.routines.find(params[:routine_id])
    routine.missed_days = routine.missed_days + 1
    routine.save
    @missed_date = routine.missed_dates.build(missed_date_params)
    @missed_date.save
    respond_modal_with @missed_date, location: root_path
  end
def创建
例程=当前用户.例程.查找(参数[:例程id])
routine.missed_days=routine.missed_days+1
例行程序。保存
@missed_date=例程。missed_dates.build(missed_date_参数)

@missed_date.user=current_user#您可以将
:user_id=>current_user.id
添加到您的参数hash中这可能会起作用,但总体建模逻辑已被破坏,并将带来大量错误。我认为TS应该考虑多态性关联,我认为多态关联不是正确的方式,但是可能是通过<代码>例程< /代码>从<代码>错误日期> /代码>模型中关联到<代码>用户>代码>模型。这可以通过
has_one:user,through::routine
实现。但我不知道是否每个
MissedDate
记录都应该分配
用户
,仅仅因为它分配了
例程
def create
  routine = current_user.routines.find(params[:routine_id])
  routine.missed_days = routine.missed_days + 1
  routine.save
  @missed_date = routine.missed_dates.build(missed_date_params)
  @missed_date.user = current_user   # <= Here you assign the user to the to the `MissedDate` record. Please ensure that your MissedDate `belongs_to` the User model!
  @missed_date.save
  respond_modal_with @missed_date, location: root_path
end