6
我有一個Upload
ActiveModel類,它有一個屬性:filename
。由於只有一個屬性,使該字段爲空的形式結束了在我的控制器使用下面的代碼時產生錯誤:使用StrongParameters處理缺少所需參數的最佳方法?
class UploadsController < ApplicationController
def create
@upload = Upload.new(upload_params)
# ...
end
private
def upload_params
params.require(:upload).permit(:filename)
end
end
我拿出最好的解決方法是rescue
在upload_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'
有沒有更好的方式來處理用戶不填寫任何表單屬性?