如何更新依赖强参数的值

时间:2018-12-27 14:33:52

标签: ruby-on-rails

我在控制器中有一个动作(使用强参数):

def home_task_params
  params.require(:home_task).permit(:subject, :description, :data)
end

我想在记录到数据库之前修改数据。我想做类似的事情:

def create
  @home_task = HomeTask.create(
    :subject => home_task_params.subject,
    :description => home_task_params.description,
    :day => home_task_params.data,
    :data => home_task_params.data,
    :class_room => current_user.class_room
  )
end

我该如何实施?

1 个答案:

答案 0 :(得分:1)

params是一个行为类似于哈希的对象。因此,您不能像这样params.subject从该对象读取值,而必须使用params[:subject]

类似的事情可能会起作用:

@home_task = HomeTask.create(
  :subject     => home_task_params[:subject], 
  :description => home_task_params[:description], 
  :day         => home_task_params[:data],
  :data        => home_task_params[:data], 
  :class_room  => current_user.class_room 
)

或者您也可以将其他值合并到params

@home_task = HomeTask.create(
  home_task_params.merge(
    day: home_task_params[:data], 
    class_room: current_user.class_room
  )
)