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
我该如何实施?
解决方案
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
)
)
推荐阅读
- sql - 在数据库表中,根据一列值获取记录,该值基于其他两列
- c# - 同时更新窗口大小和网格边距
- excel - 粘贴数据 - Excel 的其他 Listobject 中的 Listobjects 范围
- c# - 按与一组字母匹配的第一个字母对列表进行排序
- google-apps-script - 在不丢失格式的情况下附加来自其他选项卡的行
- python - 在 Seaborn 中使用颜色图作为调色板
- c - 在C中查找然后复制子字符串的有效方法
- javascript - 将事件(例如模糊)添加到多个元素(现在和未来)
- r - 在 dplyr 函数中将列名添加到 vars()
- caddy - 如何使用 Caddy 同时提供 http 和 https?