将参数传递给Active Admin中的新操作

时间:2014-05-21 22:59:23

标签: ruby-on-rails activeadmin

我有两个相关的模型,Bunny has_many BunnyData(属于Bunny)。从特定Bunny的显示页面(在Active Admin中),我想创建一个链接来创建相关的BunnyData。我尝试了几种不同的方法,但没有成功,我现在正在尝试这个:

sidebar :data, :only => :show do
  link_to 'New Data', new_admin_bunny_datum(:bunny_id => bunny.id)
end

生成的链接最终会像:

.../admin/bunny_data/new?bunny_id=5

但是当你转到那个页面时,Bunny的下拉列表被设置为空白默认值,而不是显示ID为5的Bunny名称。

提前致谢。

1 个答案:

答案 0 :(得分:15)

Rails名称空间将表单字段表示为数据模型,在本例中为BunnyData。对于要预填充的表单,提供的任何字段还必须包含命名空间。举个例子:

ActiveAdmin.register Post do
  form do |f|
    f.inputs "Post Details" do
      f.input :user
      f.input :title
      f.input :content
    end
    f.actions
  end
end

可以通过将哈希传递给路径助手来预填充字段。

link_to 'New Post', new_admin_post_path(:post => { :user_id => user.id })

这将生成以下路径并设置表单字段。

/admin/posts/new?post[user_id]=5

在BunnyData的情况下,由于单数和复数形式的数据,它可能会略有不同。但是,可以通过检查生成的HTML来查找输入的name属性来验证这一点。