我正在Active Admin 0.5中创建自定义表单。我已经注册了一个页面并通过DSL创建了一个表单:
ActiveAdmin.register_page 'Planning', :namespace => :pos_admin do
content :title => proc{ I18n.t("active_admin.dashboard") } do
form do |f|
f.input :type => :text
f.input :type => :submit
end
end
end
问题是,在提交表单时,我得到一个空的Params哈希。表单标记不包含真实性标记。
我做错了什么?
答案 0 :(得分:6)
旧帖子,但对于任何绊倒此问题的人来说,答案是添加
f.input :name => 'authenticity_token', :type => :hidden, :value => form_authenticity_token.to_s
到表格。这会将身份验证令牌传递回ActiveAdmin,以便确认没有发生伪造。您的会话已被终止,并且您被带回登录屏幕,因为ActiveAdmin认为您正在尝试伪造提交。
您的表单现在应该是这样的
form do |f|
f.input :name => 'authenticity_token', :type => :hidden, :value => form_authenticity_token.to_s
f.input :type => :text
f.input :type => :submit
end
答案 1 :(得分:0)
我使用AA表单的下一个语法(f.inputs do block) 您还必须使用对象的属性名称进行输入
form do |f|
f.inputs do
f.input :property_name, :type => :text
end
f.actions
end
希望它会有所帮助!