4

ActiveAdmin を実行し、CarrierWave を使用して画像をアップロードする ROR アプリケーションがあります。複数の ProductImage を使用できるモデル Product を取得しました。新しい製品を追加し、アップロードする画像をいくつか選択するだけで、すべてがうまくいくようです. しかし、その製品を編集したい場合、画像は実際にはアップロードされていないようで、さらに次のエラーが表示されます。

undefined method `image_changed?' 

私の推測では、最初のアップロードはあまり効果がないため、編集時に空になると思います。

以下は、管理フォームのスニペットです。

ActiveAdmin.register Product do
  form(:html => {:multipart => true}) do |f|
    f.inputs "Details" do
        f.input :name
        f.input :descr, :label => "Description"
        f.input :brand, :as => :select, :collection => Brand.all, :member_label => :name, :label => "Brand"

      # tags
      f.autocomplete_field :tag_list, '/products/autocomplete_tag_name', :"data-delimiter" => ', '
      f.input :tag_list, :hint => "Comma delimited tags"
    end

    f.has_many :product_images do |pi|
      pi.inputs "Product Images" do
        if !pi.object.nil?
          pi.input :_destroy, :as => :boolean, :label => 'Destroy?'
        end
        pi.input :image_name
        pi.input :image
      end
    end
    f.buttons
  end
end

編集

もう1つ知っていることは、投稿の作成時に画像がアップロードされ、その編集が機能することです..

4

2 に答える 2

0

少し前に同じ問題がありました(ただし、ペーパークリップで)。解決策 (明らかではありません) は、ユーザーが更新を確認するために編集フォームでパスワードを提供しなかった場合、画像が更新されなかったことです。

したがって、これを試していない場合は、価値があるかもしれません: 製品を編集するときにパスワードを入力するようにユーザーに依頼し、画像が正しく更新されるかどうかを確認してください。

于 2012-06-07T09:58:08.617 に答える