无法保存数据 active admin slef association rails 5.2
unable to save data active admin slef association rails 5.2
数据库结构
id | name | category_id(parent_id) |
当我尝试使用 active admin 保存数据时,出现以下错误消息,请查找以下详细信息和型号。
processing by Admin::CategoriesController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"Wj+Au5xC6mfESE/OXhLNM8a33Sy9Arr0pXvDnpAZdJxo/wfOLXhklVnkUbfdvEaUN0deAh78jqUqDIyCLCjwKQ==", "category"=>{"name"=>"tech", "category_id"=>"2"}, "commit"=>"Create Category"}
User Load (1.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = ORDER BY "users"."id" ASC LIMIT [["id", 1], ["LIMIT", 1]]
↳ /home/adi/.rvm/gems/ruby-2.5.7/gems/activerecord-5.2.4.1/lib/active_record/log_subscriber.rb:98
(0.4ms) BEGIN
↳ /home/adi/.rvm/gems/ruby-2.5.7/gems/activerecord-5.2.4.1/lib/active_record/log_subscriber.rb:98
(0.4ms) ROLLBACK
↳ /home/adi/.rvm/gems/ruby-2.5.7/gems/activerecord-5.2.4.1/lib/active_record/log_subscriber.rb:98
Rendering /home/adi/.rvm/gems/ruby-2.5.7/gems/activeadmin-1.4.3/app/views/active_admin/resource/new.html.arb
Category Load (0.8ms) SELECT "categories".* FROM "categories"
↳ app/admin/categories.rb:16
Rendered /home/adi/.rvm/gems/ruby-2.5.7/gems/activeadmin-1.4.3/app/views/active_admin/resource/new.html.arb (640.2ms)
Completed 200 OK in 746ms (Views: 644.9ms | ActiveRecord: 15.8ms)
Started POST "/admin/categories" for 127.0.0.1 at 2020-03-10 23:14:52 +0530
Processing by Admin::CategoriesController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"WNo/hAr1v+g75CQeyTPTFH2J8u9OuOhPM4bLPPFGKnRqGrjxu88xGqZIOmdKnVizjHlxwe1G3B688YQgTXeuwQ==", "category"=>{"name"=>"tech", "category_id"=>"2"}, "commit"=>"Create Category"}
User Load (0.8ms) SELECT "users".* FROM "users" WHERE "users"."id" = ORDER BY "users"."id" ASC LIMIT [["id", 1], ["LIMIT", 1]]
↳ /home/adi/.rvm/gems/ruby-2.5.7/gems/activerecord-5.2.4.1/lib/active_record/log_subscriber.rb:98
(0.3ms) BEGIN
↳ /home/adi/.rvm/gems/ruby-2.5.7/gems/activerecord-5.2.4.1/lib/active_record/log_subscriber.rb:98
(0.3ms) ROLLBACK
↳ /home/adi/.rvm/gems/ruby-2.5.7/gems/activerecord-5.2.4.1/lib/active_record/log_subscriber.rb:98
Rendering /home/adi/.rvm/gems/ruby-2.5.7/gems/activeadmin-1.4.3/app/views/active_admin/resource/new.html.arb
Category Load (0.7ms) SELECT "categories".* FROM "categories"
↳ app/admin/categories.rb:16
Rendered /home/adi/.rvm/gems/ruby-2.5.7/gems/activeadmin-1.4.3/app/views/active_admin/resource/new.html.arb (147.3ms)
Completed 200 OK in 179ms (Views: 152.4ms | ActiveRecord: 2.6ms)
型号:-
class Category < ApplicationRecord
has_many :blogs
belongs_to :category, :class_name => 'Category'
has_many :category, :class_name => 'Category', :foreign_key => 'category_id'
# belongs_to :Category, :class_name => 'Category'
scope :category_name, -> (id) { find(id).name }
end
活跃管理员
ActiveAdmin.register Category do
permit_params :name, :category_id
index do
selectable_column
id_column
column :name
column :category_id
actions
end
form do |f|
f.inputs do
f.input :name
f.input :category_id, :label => 'Category',:as => :select, :class => 'form-control',:collection => Category.all.map{|category| ["#{category.name}", category.id]}
end
f.actions
end
end
我也希望它是select这样的,
如果我有 2 个 id 为 1 和 2 的父类别音乐和视频以及 2 个类别 id 为 1 的儿童摇滚和无声音乐,那么在表单中如果我 select 父类别音乐则子类别下拉列表自动包含摇滚和无声音乐值。
可能发生了一些验证错误。如果您像下面这样定义关联,您将拥有一个更好的系统 -
belongs_to :parent_category, foreign_key: 'category_id', class_name: 'Category', optional: true
has_many :sub_categories, class_name: 'Category', foreign_key: 'category_id',
dependent: :destroy
然后通常您可以轻松访问 sub_categories 和 parent_category。希望 active_admin 错误会消失。如果 active_admin.
中还有任何错误,请发表评论
数据库结构
id | name | category_id(parent_id) |
当我尝试使用 active admin 保存数据时,出现以下错误消息,请查找以下详细信息和型号。
processing by Admin::CategoriesController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"Wj+Au5xC6mfESE/OXhLNM8a33Sy9Arr0pXvDnpAZdJxo/wfOLXhklVnkUbfdvEaUN0deAh78jqUqDIyCLCjwKQ==", "category"=>{"name"=>"tech", "category_id"=>"2"}, "commit"=>"Create Category"}
User Load (1.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = ORDER BY "users"."id" ASC LIMIT [["id", 1], ["LIMIT", 1]]
↳ /home/adi/.rvm/gems/ruby-2.5.7/gems/activerecord-5.2.4.1/lib/active_record/log_subscriber.rb:98
(0.4ms) BEGIN
↳ /home/adi/.rvm/gems/ruby-2.5.7/gems/activerecord-5.2.4.1/lib/active_record/log_subscriber.rb:98
(0.4ms) ROLLBACK
↳ /home/adi/.rvm/gems/ruby-2.5.7/gems/activerecord-5.2.4.1/lib/active_record/log_subscriber.rb:98
Rendering /home/adi/.rvm/gems/ruby-2.5.7/gems/activeadmin-1.4.3/app/views/active_admin/resource/new.html.arb
Category Load (0.8ms) SELECT "categories".* FROM "categories"
↳ app/admin/categories.rb:16
Rendered /home/adi/.rvm/gems/ruby-2.5.7/gems/activeadmin-1.4.3/app/views/active_admin/resource/new.html.arb (640.2ms)
Completed 200 OK in 746ms (Views: 644.9ms | ActiveRecord: 15.8ms)
Started POST "/admin/categories" for 127.0.0.1 at 2020-03-10 23:14:52 +0530
Processing by Admin::CategoriesController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"WNo/hAr1v+g75CQeyTPTFH2J8u9OuOhPM4bLPPFGKnRqGrjxu88xGqZIOmdKnVizjHlxwe1G3B688YQgTXeuwQ==", "category"=>{"name"=>"tech", "category_id"=>"2"}, "commit"=>"Create Category"}
User Load (0.8ms) SELECT "users".* FROM "users" WHERE "users"."id" = ORDER BY "users"."id" ASC LIMIT [["id", 1], ["LIMIT", 1]]
↳ /home/adi/.rvm/gems/ruby-2.5.7/gems/activerecord-5.2.4.1/lib/active_record/log_subscriber.rb:98
(0.3ms) BEGIN
↳ /home/adi/.rvm/gems/ruby-2.5.7/gems/activerecord-5.2.4.1/lib/active_record/log_subscriber.rb:98
(0.3ms) ROLLBACK
↳ /home/adi/.rvm/gems/ruby-2.5.7/gems/activerecord-5.2.4.1/lib/active_record/log_subscriber.rb:98
Rendering /home/adi/.rvm/gems/ruby-2.5.7/gems/activeadmin-1.4.3/app/views/active_admin/resource/new.html.arb
Category Load (0.7ms) SELECT "categories".* FROM "categories"
↳ app/admin/categories.rb:16
Rendered /home/adi/.rvm/gems/ruby-2.5.7/gems/activeadmin-1.4.3/app/views/active_admin/resource/new.html.arb (147.3ms)
Completed 200 OK in 179ms (Views: 152.4ms | ActiveRecord: 2.6ms)
型号:-
class Category < ApplicationRecord
has_many :blogs
belongs_to :category, :class_name => 'Category'
has_many :category, :class_name => 'Category', :foreign_key => 'category_id'
# belongs_to :Category, :class_name => 'Category'
scope :category_name, -> (id) { find(id).name }
end
活跃管理员
ActiveAdmin.register Category do
permit_params :name, :category_id
index do
selectable_column
id_column
column :name
column :category_id
actions
end
form do |f|
f.inputs do
f.input :name
f.input :category_id, :label => 'Category',:as => :select, :class => 'form-control',:collection => Category.all.map{|category| ["#{category.name}", category.id]}
end
f.actions
end
end
我也希望它是select这样的, 如果我有 2 个 id 为 1 和 2 的父类别音乐和视频以及 2 个类别 id 为 1 的儿童摇滚和无声音乐,那么在表单中如果我 select 父类别音乐则子类别下拉列表自动包含摇滚和无声音乐值。
可能发生了一些验证错误。如果您像下面这样定义关联,您将拥有一个更好的系统 -
belongs_to :parent_category, foreign_key: 'category_id', class_name: 'Category', optional: true
has_many :sub_categories, class_name: 'Category', foreign_key: 'category_id',
dependent: :destroy
然后通常您可以轻松访问 sub_categories 和 parent_category。希望 active_admin 错误会消失。如果 active_admin.
中还有任何错误,请发表评论