質問

私は実際にいくつかの助けの壁と午前必要がヒットしました!ここまで読んでためありがとう!

私は、データベース要求のための私のRORのWebサーバーと対話し、ActiveResourceに大きな感謝を作品アプリを書いている途中にいますよ。しかし、私はペーパークリップを使用しています...私の問題はしかし、私はちょうどROR側のPOSTリクエストを渡しするかどうかはわかりませんが、私は今も、サーバーにファイルをアップロードする必要がある、と私は偉大に見えるASIHTTPRequestを使用する予定しかし、実際にはレンガの壁を直撃している。

ASIHTTP側では、私は単純に書いています:

[request setData:data withFileName:@"photo.jpg" andContentType:@"image/jpeg" forKey:@"asset[image]"];

とルビーの側に私がやっている...

class Asset < ActiveRecord::Base
   validates_attachment_presence :image
    has_attached_file :image
end

class AssetsController < ApplicationController  
    protect_from_forgery :only => [:update, :destroy] 
.....

しかし、それは常に失敗したが、私はそれがPOSTフォームデータセットとは何かを持っているかなり確信しているが、私は完全に立ち往生しています。

私はエラーを取得しています:

 Parameters: {"assets"=>{"images"=>#<File:/var/folders/gM/gM15qjM2G3W0iVNaT1evD++++TI/-Tmp-/RackMultipart20091112-2285-2i0qq5-0>}}

NoMethodError (You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.[]):
  app/models/asset.rb:2
  app/controllers/assets_controller.rb:46:in
     

` 'を作成

すべてのヘルプは非常に非常に感謝して受信されるだろう。

クリス

ありがとうございます。

役に立ちましたか?

解決

私は、アップロードをやってチェックしたい最初の事は(個人的に私はペーパークリップを使用したい、または何でも)何file_columnにパラメータ名を設定している期待しています。

あなたのような何かを持っている場合:

class Entry < ActiveRecord::Base
    file_column :image
end

あなたは、パラメータ(フォームフィールド名)が期待されているものに対応を確認する必要があります。上記の例では、これは以下のようになります:

name="entry[image]"

また、あなたがマルチパートフォームポストだけでなく、標準をやっていることを確認してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top