外键在 rails 项目的 activeadmin 中不起作用
foreign key doesn't work in activeadmin in rails project
我在 rails 项目的 activeadmin 中遇到了一个奇怪的问题。
我创建了新的 rails 项目和两个表如下。
rails g model category title:text
rails g model subcategory category:references title:text
子类别属于引用关键字具有外键 "category_id" 的类别。
我已将类别和子类别模型更改如下。
class Category < ActiveRecord::Base
has_many :subcategories, dependent: :destroy
end
和
class Subcategory < ActiveRecord::Base
belongs_to :category
default_scope -> { order(created_at: :desc) }
end
我在 Gemfile 中添加了 activeadmin gem 并安装了。
ActiveAdmin.register Category do
permit_params :title
end
ActiveAdmin.register Subcategory do
permit_params :category_id, :title
end
登录成功
我添加了新类别。如果我单击子类别以创建新的子类别,则类别项会带来与图像类似的错误。
我想显示我添加的分类。
最好的问候。
没有错误。
那些是类别对象。现在由您决定要显示类别对象的哪个属性。名称?描述?
你可以有这样的表格:
ActiveAdmin.register Subcategory do
permit_params :name, :description, :category_id
form do |f|
f.semantic_errors *f.object.errors.keys
f.inputs "Details" do
f.input :name
f.input :description
f.input :category_id, :as => :select, :collection => Category.all.collect {|category| [category.name, category.id] }
end
f.actions
end
end
注意这一行:f.input :category_id, :as => :select, :collection => Category.all.collect {|category| [category.name, category.id] }
我是说用所有现有类别填充子类别字段,显示它们的名称,并使用它们的 ID。
希望对您有所帮助。
我在 rails 项目的 activeadmin 中遇到了一个奇怪的问题。
我创建了新的 rails 项目和两个表如下。
rails g model category title:text
rails g model subcategory category:references title:text
子类别属于引用关键字具有外键 "category_id" 的类别。 我已将类别和子类别模型更改如下。
class Category < ActiveRecord::Base
has_many :subcategories, dependent: :destroy
end
和
class Subcategory < ActiveRecord::Base
belongs_to :category
default_scope -> { order(created_at: :desc) }
end
我在 Gemfile 中添加了 activeadmin gem 并安装了。
ActiveAdmin.register Category do
permit_params :title
end
ActiveAdmin.register Subcategory do
permit_params :category_id, :title
end
登录成功
我添加了新类别。如果我单击子类别以创建新的子类别,则类别项会带来与图像类似的错误。
我想显示我添加的分类。 最好的问候。
没有错误。
那些是类别对象。现在由您决定要显示类别对象的哪个属性。名称?描述?
你可以有这样的表格:
ActiveAdmin.register Subcategory do
permit_params :name, :description, :category_id
form do |f|
f.semantic_errors *f.object.errors.keys
f.inputs "Details" do
f.input :name
f.input :description
f.input :category_id, :as => :select, :collection => Category.all.collect {|category| [category.name, category.id] }
end
f.actions
end
end
注意这一行:f.input :category_id, :as => :select, :collection => Category.all.collect {|category| [category.name, category.id] }
我是说用所有现有类别填充子类别字段,显示它们的名称,并使用它们的 ID。
希望对您有所帮助。