Rails参数在创建操作中合并



我有一个控制器,我需要合并一列,不存在于数据库中。实际上,我不应该在db中添加列名,也不应该为这个添加迁移。

这是我的创建操作:

User.new(user_params).merge(first_name: "xyz")
这是我的user_params方法:
def user_params
params.permit(:id, :name :email_id)
end

但合并不起作用。有谁能帮我一下吗?提前谢谢。

您可以将first_name合并到参数中,或者在启动User后设置它

def user_params
params.permit(:id, :name, :email_id).merge(first_name: 'xyz')
end

或:

user = User.new(user_params)
user.first_name = 'xyz'

编辑:如果User表没有first_name列,你不能做你想做的

您可以使用活动存储,并提供关系,如用户has_one:first_name,您可以添加first_name,而不添加到您的用户模型/表

def user_params
params.permit(:id, :name :email_id)
end

你使用mergeuser_params。

User.new(user_params.merge(first_name: "xyz"))