1

特定のユースケース用に作成した宝石で Paperclip を使用しています。私の宝石は、非プログラマーがフォームを作成および編集するためのインターフェイスを作成し、ユーザーがそれらのフォームに回答できるようにします。

質問に「ファイルアップロード」入力タイプを提供するためにペーパークリップを使用したいので、私のフォームはより用途が広いです。ただし、これは、file_field_tagメソッドを使用してファイル入力を表示する必要があり、その入力を通じて送信された情報を適切なモデル オブジェクトに手動で保存する必要があることを意味します。現在、名前を使用して情報を送信しquestion_1、アップロードされたデータをparams["question_1"].

私のコードは次のようになります。

    answer.update_attributes(upload: params["question_1"])

しかし、No handler found for <image_name>エラーが発生し、何が間違っているのかわかりません。file_field?からデータを渡した後、Paperclip がすべてを処理すると思いました。

解決:

私のフォームは次のよう<%= form_for @answer_set, multipart: true do %>になりました<%= form_for @answer_set, html: { multipart: true } do %>

4

1 に答える 1

2

私が使う

has_attached_file :image
validates_attachment_presence :image
validates_attachment_content_type :image, :content_type => ['image/jpeg', 'image/png', 'image/jpg', 'image/pjeg']

その後:

@upload = Upload.find(params[:id])
@upload.update_attributes(params[:upload])

config/environment.rb

Rails::Initializer.run do |config|
  config.gem "paperclip", version: "~> 2.7"
end

このスレッドは、フォームhttps://stackoverflow.com/a/10076046/1354978でマルチパートを確認することも提案してい ます

answer_form_for @upload, :html => {:multipart => true} do |f|

そのページには、他の可能な解決策もあります。

于 2012-08-21T04:17:50.303 に答える