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

您可以使用 advert 变量,它保存带有来自 params 的 id 的 Advert 对象。

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

顺便说一句,您的代码无效。你得到整个 Advert 对象,而不仅仅是 id。有效代码:

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

这也应该有效

于 2012-07-03T14:50:15.980 回答