2012-10-18 63 views
4

我在Active Admin 0.5中创建自定义窗体。我已经注册了一个页面,并通过DSL创建的窗体:Active Admin中的自定义窗体

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哈希值。而表单标签不包含真实性标记。

我在做什么错?

回答

1

我下次使用的语法与AA的形式(与f.inputs做块) 你也需要使用对象的属性名称的输入

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

希望这将有助于!

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