ActiveAdmin:从其他引擎加载和使用模型不起作用
ActiveAdmin: load and use models from other engine doesn't work
我按照 wiki 中的指南在我的主应用程序中使用我的引擎中的模型并激活管理员。
我唯一必须改变的(维基中没有提到的)是:
if defined?(ActiveAdmin)
ActiveAdmin.register Blog::Category do
end
end
我刚刚添加:Blog::
。
在我的引擎 "Blog" 中,我添加了一个名为 "category" 且具有 name:string 属性的模型。但是当我在活动管理员中添加一个时,字段名称没有保存在数据库中。我的请求参数是:
{"utf8"=>"✓", "authenticity_token"=>"PzKDTcoJZ6Sy2tXgw9WSwXiR7aZp81lOtBvfD5Ec3F72H5L7MEMLjlOFgKWQBo2U4n9mPc7AgjcIS3MTIY2nZA==", "category"=>{"name"=>"asdasd"}, "commit"=>"Update Category", "id"=>"1"}
知道为什么它没有保存在数据库中吗?
当我创建一个新记录时,记录已创建但没有我的输入。
我运行陷入同样的问题。我能够通过覆盖 activeadmin 控制器操作(例如 app/admin/category.rb)来正确保存资源,如下所示
ActiveAdmin.register Blog::Category do
permit_params :the, :parameters, :for, :your, :resource
controller do
def create
@category = Blog::Category.new permitted_params[:category]
if @category.save
notice = 'Category was successfully created.'
redirect_to admin_blog_category_url(@category), notice: notice
else
render :new
end
end
end
end
我不确定在默认情况下到底发生了什么,但我的猜测是 activeadmin 控制器操作没有在正确的命名空间中创建对象——也就是说,它做了类似 @category = Category.new
而不是 @category = Blog::Category.new
。 :update
操作似乎也需要类似的覆盖。
我按照 wiki 中的指南在我的主应用程序中使用我的引擎中的模型并激活管理员。
我唯一必须改变的(维基中没有提到的)是:
if defined?(ActiveAdmin)
ActiveAdmin.register Blog::Category do
end
end
我刚刚添加:Blog::
。
在我的引擎 "Blog" 中,我添加了一个名为 "category" 且具有 name:string 属性的模型。但是当我在活动管理员中添加一个时,字段名称没有保存在数据库中。我的请求参数是:
{"utf8"=>"✓", "authenticity_token"=>"PzKDTcoJZ6Sy2tXgw9WSwXiR7aZp81lOtBvfD5Ec3F72H5L7MEMLjlOFgKWQBo2U4n9mPc7AgjcIS3MTIY2nZA==", "category"=>{"name"=>"asdasd"}, "commit"=>"Update Category", "id"=>"1"}
知道为什么它没有保存在数据库中吗? 当我创建一个新记录时,记录已创建但没有我的输入。
我运行陷入同样的问题。我能够通过覆盖 activeadmin 控制器操作(例如 app/admin/category.rb)来正确保存资源,如下所示
ActiveAdmin.register Blog::Category do
permit_params :the, :parameters, :for, :your, :resource
controller do
def create
@category = Blog::Category.new permitted_params[:category]
if @category.save
notice = 'Category was successfully created.'
redirect_to admin_blog_category_url(@category), notice: notice
else
render :new
end
end
end
end
我不确定在默认情况下到底发生了什么,但我的猜测是 activeadmin 控制器操作没有在正确的命名空间中创建对象——也就是说,它做了类似 @category = Category.new
而不是 @category = Blog::Category.new
。 :update
操作似乎也需要类似的覆盖。