我有两个相关的模型,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名称。
提前致谢。
答案 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
属性来验证这一点。