gpt4 book ai didi

ruby-on-rails - 使用 StrongParameters 处理缺少的必需参数的最佳方法?

转载 作者:行者123 更新时间:2023-12-04 07:22:25 24 4
gpt4 key购买 nike

我有一个 Upload具有一个属性的 ActiveModel 类:filename .由于只有一个属性,因此在我的 Controller 中使用以下代码时,将表单上的字段留空最终会引发错误:

class UploadsController < ApplicationController
def create
@upload = Upload.new(upload_params)
# ...
end

private

def upload_params
params.require(:upload).permit(:filename)
end
end

我想出的最佳解决方法是 rescueupload_params方法,例如:
def upload_params
params.require(:upload).permit(:filename) rescue ActionController::Parameters.new
end

或者,我想我可以添加一个隐藏字段以确保 filename无论如何,字段始终设置为某些内容,例如:
= simple_form_for upload do |f|
= f.input :filename, as: :hidden, input_html: { value: '' }
= f.input :filename, as: :file
= f.submit 'Upload'

有没有更好的方法来处理用户不填写任何表单属性?

最佳答案

我找到的数字 the answer发布我的问题后立即。 :)

它看起来像 ActionController::StrongParameters#fetch方法执行所需的操作,例如:

params.fetch(:upload, {}).permit(:filename)

关于ruby-on-rails - 使用 StrongParameters 处理缺少的必需参数的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24337458/

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