Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 为什么yaml文件上传不起作用?我想是许可问题_Ruby On Rails_Ruby_Ruby On Rails 3_File Upload_Yaml - Fatal编程技术网

Ruby on rails 为什么yaml文件上传不起作用?我想是许可问题

Ruby on rails 为什么yaml文件上传不起作用?我想是许可问题,ruby-on-rails,ruby,ruby-on-rails-3,file-upload,yaml,Ruby On Rails,Ruby,Ruby On Rails 3,File Upload,Yaml,我想在config目录中加载一个由用户选择的yaml文件。 我有一个看法: <h1>File Upload</h1> <p>Upload your Yaml Configuration File</p> <p style="color: green"><%= flash[:notice] %></p> <%= form_for :uploadFile, :html => { :multipart

我想在config目录中加载一个由用户选择的yaml文件。 我有一个看法:

<h1>File Upload</h1>
<p>Upload your Yaml Configuration File</p>

<p style="color: green"><%= flash[:notice] %></p>

<%= form_for :uploadFile, :html => { :multipart => true } do |f| %>

  <label for="upload_file">Select File:</label>
  <%= f.file_field :upload %>
  <%= f.submit "Upload", :disable_with => 'Uploading...' %>
<% end %>
我有一个控制器:

class UploadController < ApplicationController
def uploadFile
    uploaded_io = params[:uploadFile][:upload]
    File.open(Rails.root.join('public', uploaded_io.original_filename), 'w') do |file|
        file.write(uploaded_io.read)
    end

    flash.now[:notice]="File has been uploaded successfully"

end
end
当用户选择文件并按upload时,不会发生任何事情,并且文件不在config文件夹中。我能做什么?也许我应该使用导入yaml并以某种方式加载它,如何

日志说:

Started POST "/upload/uploadfile" for 127.0.0.1 at 2012-11-08 10:51:46 +0100
Processing by UploadController#uploadfile as HTML
  Parameters: {"utf8"=>"✓",  "authenticity_token"=>"5FKgZJG4gKPCHXe8OqhFVZL0bu2X9zLR3sxd4ELBulA=", "uploadFile"=>{"upload"=>#<ActionDispatch::Http::UploadedFile:0x3b03ad8 @original_filename="newCases.yml", @content_type="application/octet-stream", @headers="Content-Disposition: form-data; name=\"uploadFile[upload]\"; filename=\"newCases.yml\"\r\nContent-Type: application/octet-stream\r\n", @tempfile=#<File:C:/Users/Simo/AppData/Local/Temp/RackMultipart20121108-2664-tb7lxr>>}, "commit"=>"Upload"}
  [1m[35mSetting Load (0.0ms)[0m  SELECT "settings".* FROM "settings" WHERE "settings"."id" = ? LIMIT 1  [["id", 1]]
  Rendered upload/uploadfile.html.erb within layouts/upload (0.0ms)
Completed 200 OK in 0ms (Views: 0.0ms | ActiveRecord: 0.0ms)

改为试试这个

我有windows 7,我有:config/properties/attributes/I删除只读检查,然后给出ok。但如果我回溯过去,它仍然是只读的。我必须这么做?为什么它没有改变?但是我不认为你可以先在配置中写一个文件,看看你是否可以在公共场合写这个文件
File.open(Rails.root.join('config', uploaded_io.original_filename), 'wb+') do |file|
    file.write(uploaded_io.read)
end