1

RefineryCMSの画像モデルにタグを追加しようとしています(1.0.8と2.0.4を試してみます)、attr_accessible:tag_listを追加し、タグ付け可能な動作を必要とし、ビューを設定しましたが、問題はタグのみであるということです以前にアップロードした画像を編集/更新するときに保存します-同じフォームを使用していても、初めてアップロードするときではありません...

何か案は?

それは私が試したレールと製油所のすべてのバージョンで起こります...

ログを見るとき、タグは投稿で通過しますが、保存するだけではありません...

4

1 に答える 1

1

私も同様の問題を抱えていましたが、最終的には、新しい画像のアップロード時に余分な属性(あなたの場合は:tag_list)が保存されない原因を見つけました。

見てみる::Refinery::ImageControllerと、作成アクションが実際に次のように画像を作成していることがわかります。

unless params[:image].present? and params[:image][:image].is_a?(Array)
    @images << (@image = ::Refinery::Image.create(params[:image]))
else
    params[:image][:image].each do |image|
        @images << (@image = ::Refinery::Image.create(:image => image))
    end
end 

params[:image][:image]複数の複数ファイルのアップロードが有効になっている場合のアレイです(デフォルトでは有効になっています)。ただし、アクションは、他のパラメーターを無視して、イメージを作成するときに配列値を取得するだけを使用します。

複数の画像のアップロードで他のパラメータを保存できるようにする以下の回避策をすばやく作成します。

unless params[:image].present? and params[:image][:image].is_a?(Array)
    @images << (@image = ::Refinery::Image.create(params[:image]))
else
    images_params = params[:image].dup
    images_params.delete(:image)
    params[:image][:image].each do |image|
        @images << (@image = ::Refinery::Image.create({:image => image}.merge(images_params)))
    end

終わり

それはおそらく最もエレガントな解決策ではありませんが、それはトリックを行います。

::Refinery::ImageControllerアプリで使用するには、作成アクションをコピーして編集するためのデコレータを作成する必要があります。(製油所ガイドの「コントローラーの拡張」を参照)

于 2012-08-10T08:48:24.270 に答える