4

我正在 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 哈希。并且表单标签不包含真实性令牌。

我究竟做错了什么?

4

2 回答 2

8

一个旧帖子,但对于任何偶然发现这个问题的人来说,答案是添加

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
于 2013-06-04T06:29:41.227 回答
0

我使用带有 AA 表单的下一个语法(使用 f.inputs do block)你还必须使用对象的属性名称作为输入

 form do |f|
   f.inputs do
     f.input :property_name,  :type => :text
   end
   f.actions
  end

希望它会有所帮助!

于 2012-10-24T09:33:12.087 回答