我希望我的active_admin成员动作接受GET以及POST请求。我该怎么办?
这行不通:
member_action :stats, :method => [:get, :post] do
如果我们没有指定方法,它会假设它是:get(查看源代码,默认设置为:get)
我如何以DRY的方式做?我可以把同一个函数写两次:
member_action :stats, :method => :post do
member_action :stats, :method => :get do
但是如果我必须这样做,我会感觉很糟糕!
简单的回答:你不能。当使用member_action时,你只是创建了一个AA:ControllerAction的实例,它只支持一个动词。
但是还是有希望的:),你可以用更有意义的动词来写你的成员动作(它有副作用吗?POST,它应该是书签吗?GET),然后打开你的路线。并添加如下内容:
namespace :admin do
resources :your_resource do
get 'stats', :on => :member
post 'stats', :on => :member
end
end