为什么Rails形成multiple: true change submitted param form
Why does Rails form multiple: true change submitted param form
我正在玩 ActiveStorage 并尝试在本地上传一些文件。一切都适用于下面的代码,但前提是我从表单中删除 multiple: true
。当它在表单上时,我在控制台中收到 unpermitted param "files" 错误。未经许可的参数来自表单提交哈希的方式。
如果没有 multiple: true
,散列将附件列为数组(这是工作版本):
"article"=>{"files"=>[#<ActionDispatch::Http::UploadedFile:0x007fb4e8e287f0
但是打开它会删除数组:
"article"=>{"files"=>#<ActionDispatch::Http::UploadedFile:0x007fb4eb07b7d0
是什么导致了此表单行为,我该如何解决?
我从 Engine Yard 获得了代码示例,这里是项目代码:
<h3>Attach files to this post</h3>
<%= form_with model: @article, local: true do |f| %>
<div class="form-row">
<%= f.label :file_upload, 'Attach a file' %>
<%= f.file_field :files, multiple: true %>
</div>
<%= f.submit %>
<% end %>
<h3>Attached files</h3>
<% @article.files.each do |file| %>
<%= link_to file.blob.filename, url_for(file) %>
<% end %>
当您使用 multiple: true
时,您需要在 article_params
中为 :files
显式允许数组:
例如:
params.require(:article).permit(:author, :text, files: [])
您可以在 Action Controller
下阅读更多内容
祝你好运!
我正在玩 ActiveStorage 并尝试在本地上传一些文件。一切都适用于下面的代码,但前提是我从表单中删除 multiple: true
。当它在表单上时,我在控制台中收到 unpermitted param "files" 错误。未经许可的参数来自表单提交哈希的方式。
如果没有 multiple: true
,散列将附件列为数组(这是工作版本):
"article"=>{"files"=>[#<ActionDispatch::Http::UploadedFile:0x007fb4e8e287f0
但是打开它会删除数组:
"article"=>{"files"=>#<ActionDispatch::Http::UploadedFile:0x007fb4eb07b7d0
是什么导致了此表单行为,我该如何解决?
我从 Engine Yard 获得了代码示例,这里是项目代码:
<h3>Attach files to this post</h3>
<%= form_with model: @article, local: true do |f| %>
<div class="form-row">
<%= f.label :file_upload, 'Attach a file' %>
<%= f.file_field :files, multiple: true %>
</div>
<%= f.submit %>
<% end %>
<h3>Attached files</h3>
<% @article.files.each do |file| %>
<%= link_to file.blob.filename, url_for(file) %>
<% end %>
当您使用 multiple: true
时,您需要在 article_params
中为 :files
显式允许数组:
例如:
params.require(:article).permit(:author, :text, files: [])
您可以在 Action Controller
下阅读更多内容祝你好运!