0

フォームにアップロードされた画像を Cloudinary クラウドに直接アップロードしようとしています。

これは、私のコードでユーザーのフォームを編集します:

<%= form_for(@user) do |f| %>

<% if @user.name == nil %>
  <div>  
    <label for="user_username">Username or Email</label>
    <input id="user_username" name="user[username]" size="30" type="text"  />
  </div> 
<% else %>
    <div>
      <%= f.label :username_or_Email %>
      <%= f.text_field :username %> 
    </div>
<% end %> 

    <div>
      <%= f.label :name %>
      <%= f.text_field :name %> 
    </div>

    <div>
      <%= f.label :password %>
      <%= f.password_field :password %>
    </div>

    <div>
      <%= f.label :password_confirmation %>
      <%= f.password_field :password_confirmation %>
    </div>

    <div>
      <%= file_field_tag 'image' %>
    </div>
  <div><%= f.submit "Update", :class => 'btn' %></div>  
<% end %>

これが送信されるユーザーコントローラーには、次の行があります。

Cloudinary::Uploader.upload(params[:image], :public_id => @user.username)

この行は Cloudinary ドキュメントで提供されています。エラーは次のとおりです。

そのようなファイルまたはディレクトリはありません - スクリーンショット 2012-07-26 at 3.26.05 PM.png

Request

Parameters:

{"utf8"=>"✓",
 "_method"=>"put",
 "authenticity_token"=>"ueS/aqqCtsIH7ikVA1pq4LfWn044xltFnPQ6Dc0yQXE=",
 "user"=>{"username"=>"asuri@yahoo.com",
 "name"=>"Ankit Suri",
 "password"=>"[FILTERED]",
 "password_confirmation"=>"[FILTERED]"},
 "image"=>"Screen Shot 2012-07-26 at 3.26.05 PM.png",
 "commit"=>"Update",
 "id"=>"P9q5l9gmea"}

誰かがエラーがどこにあるかを理解できますか?

4

2 に答える 2

2

Railsフォームでファイルをアップロードするには、を使用していることを確認する必要がありますMultipart

form_for次のように通話を変更するだけです。

<%= form_for(@user, :html => {:multipart => true}) do |f| %>

さらに、画像のアップロードを管理するためにCarrierWaveまたはAttachinaryの使用も検討する必要があります。

于 2012-08-07T09:31:10.513 に答える
0

cloudinary.ymlファイルはどうですか?次のリンクを使用してダウンロードできます:http://cloudinary.com/console/cloudinary.ymlconfig/そしてディレクトリの下に配置します

于 2012-08-25T22:01:38.097 に答える