我在控制器中有一个动作(使用强参数):
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
我该如何实施?
答案 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
)
)