使用ActiveAdmin的Rails引擎中的资源名称空间问题

时间:2015-12-02 19:18:17

标签: ruby-on-rails activeadmin

我遇到问题,我在ActiveAdmin中成功注册了资源,但我无法创建或更新任何记录。我认为这是由于命名空间问题。我可以在注册资源时使用选项覆盖它吗?

我正在构建一个Rails引擎,它可以在引擎中注册AA资源。我按照说明here

我的引擎包含lib / admin / myengine / myresources.rb

if defined?(ActiveAdmin)
  ActiveAdmin.register Myengine::Myresource do
  end
end

在测试/虚拟应用程序中,相关模式如下所示:

create_table "myengine_myresources", force: :cascade do |t|
  t.string   "name"
  t.datetime "created_at", null: false
  t.datetime "updated_at", null: false
end

当我运行虚拟app服务器时,我成功导航到http://localhost:3000/admin/myengine_myresources并点击'New Myengine Myresource'

我输入一个名称并点击“创建我的资源”,但它会将请求视为我提交的空白属性值。

服务器日志显示:

Started POST "/admin/myengine_myresources" for ::1 at 2015-12-02 11:13:52 -0800
Processing by Admin::MyengineMyresourcesController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"stuff", "myresource"=>{"name"=>"Arbitrary Name"}, "commit"=>"Create Myresource"}
   (0.1ms)  begin transaction
   (0.1ms)  rollback transaction
  Rendered /Users/me/.rvm/gems/ruby-2.2.3/gems/activeadmin-1.0.0.pre2/app/views/active_admin/resource/new.html.arb (190.7ms)
Completed 200 OK in 231ms (Views: 199.4ms | ActiveRecord: 0.2ms)

我的工作理论是,params需要在里面:myengine_myresource而不仅仅是:myresource。

关于如何实现这一目标的任何想法?

1 个答案:

答案 0 :(得分:2)

这是一个解决方法:

<div id="aaa">
    <p>
        <span>123 main street</span>
    </p>
    <p>
        <span>US</span>
    </p>
</div>