我有一個通過回形針上傳yml文件的問題。這是我我如何努力做到這一點:回形針上傳yml文件
在我的模型,我有:
has_attached_file :search_config
validates_attachment_content_type :search_config, content_type: ['text/yaml', 'application/x-yaml', 'text/x-yaml', 'application/yaml', 'text/plain']
筆者認爲:
<%= form_for @search, :html => { :multipart => true } do |f| %>
<fieldset>
<legend>Skills</legend>
<%= hidden_field_tag :type, 'recommendation' %>
<%= f.file_field :search_config %>
<%= f.submit 'Save', class: 'btn btn-primary' %>
</fieldset>
在我的控制器:
def create
@search = MailingSearch.new(params[:mailing_search])
if @search.save
redirect_to action: :index, notice: 'Your search was successfully created. Search results will be send via email soon.'
else
render action: :new
end
end
我得到一個錯誤,那
search_config_content_type=>["is invalid"]
當我嘗試從控制檯文件(我使用的是相同的文件):
ms = MailingSearch.new
ms.search_config = File.open('tmp/test.yml')
ms.save
它的工作原理。這裏可能有什麼問題?
鑑於YML文件的解析導致去年遠程代碼執行時出現了一堆安全問題(基本上YML允許嵌入式XML允許嵌入式ruby),我會更加確信這實際上就是您必須做的。你能否恢復到像JSON這樣不太危險的格式? – Patru
是的,但這是臨時功能,它只會在客戶端內部使用。 – wawka