gpt4 book ai didi

ruby-on-rails - 如何设置 Controller 参数的默认值?

转载 作者:数据小太阳 更新时间:2023-10-29 07:51:36 24 4
gpt4 key购买 nike

我的数据库中有一个客户表和一个名为“last_updated_by”的列。我想在此字段中以纯文本形式添加当前用户名。

我在我的应用程序上安装了设计,因此它为我提供了 current_user 参数。我尝试将 current_user.name 添加到 customers_controllers 允许的参数,但没有成功。

1-
def customer_params
params.require(:customer).permit(:name, :last_updated_by=>current_user.name)
end

2-
def customer_params
params[:last_updated_by] = current_user.name
params.require(:customer).permit(:name, :last_updated_by)
end

3-
def customer_params
last_updated_by = current_user.name
params.require(:customer).permit(:name, :last_updated_by=>current_user.name)
end

如何在 Controller 中设置一些默认值。

最佳答案

既然你问的是设置默认值,我建议使用 with_defaults方法,它只是 reverse_merge 的一个(更具表现力的)别名.

def customer_params
params
.require(:customer)
.permit(:name, :last_updated_by)
.with_defaults(last_updated_by: current_user.name)
end

reverse_mergemerge 做同样的事情,唯一的区别是发生冲突的键时会发生什么。 merge 使用通过参数传递的散列值,而 reverse_merge 更喜欢接收方的值。

params = { a: 1, b: 2 }
defaults = { a: 4, c: 5 }
params.merge(defaults) #=> { a: 4, b: 2, c: 5 }
params.reverse_merge(defaults) #=> { a: 1, b: 2, c: 5 }
# ^ aka with_defaults

关于ruby-on-rails - 如何设置 Controller 参数的默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53903913/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com