访问ActiveAdmin中的参数

时间:2014-12-10 11:48:20

标签: ruby-on-rails activeadmin params

我需要访问以下块中的params

ActiveAdmin.register Discussion, namespace: :dev_panel do
  raise params.inspect
  ...
end

我完全需要它,而不是controlleraction_item内部。

但我正在

  对于ActiveAdmin :: ResourceDSL

未定义的局部变量或方法params

有谁知道我该怎么做?

修改

我的目标是能够在admin/discussions.rb中定义这两个块:

ActiveAdmin.register Discussion, namespace: :dev_panel do
  belongs_to :my_active_submission, parent_class: ClientApplication
  ...
end

ActiveAdmin.register Discussion, namespace: :dev_panel do
  belongs_to :lead_submission, parent_class: ClientApplication
  ...
end

问题在于,AA只处理后一个块,并且表现为没有以前的块。我敢打赌,问题在于命名空间 - 我无法定义两个具有相同资源和命名空间的块。

2 个答案:

答案 0 :(得分:1)

您是否尝试使用as:选项定义您的讨论?我有一个模型需要在许多不同的上下文中使用,所以我设置:

ActiveAdmin.register Discussion, as: 'ActiveDiscussion' do; end
ActiveAdmin.register Discussion, as: 'PoliticalDiscussion' do; end

或者您可以根据需要进行分类讨论

class ActiveDiscussion < Discussion; end
class PoliticalDiscussion < Discussion; end

然后将它们注册到ActiveAdmin。

ActiveAdmin.register ActiveDiscussion do; end
ActiveAdmin.register PoliticalDiscussion do; end

希望它有所帮助。

答案 1 :(得分:1)

在那个地方访问params技术是不可能的。寄存器块仅在加载时执行,而不是按请求执行。

写下一个完整的例子,就像你可以访问params一样,我们可能会找到另一个解决方案。