我遇到问题,我在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。
关于如何实现这一目标的任何想法?
答案 0 :(得分:2)
这是一个解决方法:
<div id="aaa">
<p>
<span>123 main street</span>
</p>
<p>
<span>US</span>
</p>
</div>