私も同様の問題を抱えていましたが、最終的には、新しい画像のアップロード時に余分な属性(あなたの場合は: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
アプリで使用するには、作成アクションをコピーして編集するためのデコレータを作成する必要があります。(製油所ガイドの「コントローラーの拡張」を参照)