0
我想將.xlsx臨時文件從表單傳遞到導入模型。但是,我遇到ActiveModel::ForbiddenAttributesError
。我正確地定義了強參數,但是在處理沒有屬性的類的虛擬列時可能會有一些特殊性。ActiveModel :: ForbiddenAttributesError在沒有屬性的類中的虛擬列
當指向本地文件路徑時,模型邏輯工作,所以我把它的大部分都留下了。這裏是我的代碼:
new.html.erb
<%= form_for @package_import do |f| %>
<%= f.file_field :file %>
<%= f.submit "Import" %>
<% end %>
package_imports_controller.rb
class PackageImportsController < ApplicationController
def new
@package_import = PackageImport.new
end
def create
@package_import = PackageImport.new(params[:package_import])
if @package_import.save
redirect_to root_url, notice: "Imported packages"
else
render :new
end
end
private
def package_import_params
params.require(:package_import).permit(:file)
end
end
package_import.rb
class PackageImport
include ActiveModel::Model
...
end
這是朝正確方向邁出的一步。因爲:file是一個虛擬屬性,我還必須在模型中添加'attr_accessor:file'使它按預期工作。 – sso777