Ruby on rails 使用StrongParameters处理缺少的必需参数的最佳方法?
我有一个Ruby on rails 使用StrongParameters处理缺少的必需参数的最佳方法?,ruby-on-rails,ruby-on-rails-4,strong-parameters,Ruby On Rails,Ruby On Rails 4,Strong Parameters,我有一个UploadActiveModel类,它有一个属性:filename。由于只有一个属性,因此在我的控制器中使用以下代码时,将表单上的字段留空会导致错误: class UploadsController < ApplicationController def create @upload = Upload.new(upload_params) # ... end private def upload_params params.requir
Upload
ActiveModel类,它有一个属性:filename
。由于只有一个属性,因此在我的控制器中使用以下代码时,将表单上的字段留空会导致错误:
class UploadsController < ApplicationController
def create
@upload = Upload.new(upload_params)
# ...
end
private
def upload_params
params.require(:upload).permit(:filename)
end
end
或者,我想我可以添加一个隐藏字段,以确保无论发生什么情况,filename
字段始终设置为某个值,例如:
= simple_form_for upload do |f|
= f.input :filename, as: :hidden, input_html: { value: '' }
= f.input :filename, as: :file
= f.submit 'Upload'
有没有更好的方法来处理不填写任何表单属性的用户?我在发布问题后立即找到的数字。:)
它看起来像是ActionController::StrongParameters#fetch
方法执行所需操作,例如:
params.fetch(:upload, {}).permit(:filename)
params.fetch(:upload, {}).permit(:filename)