1

広告に属する写真リソースがあります。

ActiveAdmin では、ユーザーは広告の編集ページから直接写真をアップロードできる必要があります (明らかに、広告が作成された後にのみ)。

フォームは次のように生成されます。

form do |f|

    [... the usual forms ...]

    f.inputs "Photos" do
      f.has_many :photos, :title => "Photo" do |p|
        p.input :advert, :as => :hidden, :value => Advert.find(params[:id])
        p.input :title
        p.input :image
      end
    end

end

ラインをお願いします

p.input :advert, :as => :hidden, :value => Advert.find(params[:id])

ユーザーが編集している広告の ID を持つ非表示フィールドを生成しますが、これは空のフィールドを生成するだけです。私は他の多くのオプションも試しましたが、それを理解できないようです。

ヒントはありますか?

4

1 に答える 1

2

paramsからのidを持つAdvertオブジェクトを保持するadvert変数を使用できます。

p.input :advert, :as => :hidden, :value => advert.id

ちなみに、あなたのコードは無効です。IDだけでなく、Advertオブジェクト全体を取得します。有効なコード:

p.input :advert, :as => :hidden, :value => Advert.find(params[:id]).id

これもうまくいくはずです

于 2012-07-03T14:50:15.980 に答える