【发布时间】:2021-01-29 00:09:26
【问题描述】:
我在活动管理员中设置允许的参数时遇到问题。文档说“任何发送多个值(例如 HABTM 关联或数组属性)的表单字段都需要将空数组传递给 permit_params”。这是我来自 admin/sample.rb 的代码:
ActiveAdmin.register Sample do
permit_params :title, :description, :file_type, :audio_data, :channels, :sample_rate, :file_size,
categories: []
end
当我尝试此操作时,所有属性都会出现在我的活动管理表中,但categories 没有任何属性。我不确定我哪里出错了。我也尝试过category_ids 和sample_categories,但它仍然没有显示在表格中。我也尝试向数组添加属性,例如categories: [:name],但仍然没有。
应用程序本身的一切行为都应如此,例如,我可以在创建sample 时添加一个类别。关于如何解决这个问题的任何建议?这是一些相关的代码。
models/sample.rb
class Sample < ApplicationRecord
...
has_many :sample_categories
has_many :categories, through: :sample_categories
end
models/category.rb
class Category < ApplicationRecord
has_many :sample_categories
has_many :samples, through: :sample_categories
end
models/sample_category.rb
class SampleCategory < ApplicationRecord
belongs_to :sample
belongs_to :category
end
控制器/samples_controller.rb
...
def sample_params
params.require(:sample).permit(:title, :description, :audio, :file_type, :file_size, :sample_rate, :channels, :tag_list, category_ids: [])
end
...
【问题讨论】:
-
如果 ActiveAdmin 正在使用集合助手,则该参数几乎可以肯定称为
category_ids。category_ids: []将允许 any permitted scalar value。您应该能够通过查看呈现的表单或请求参数来检查这一点。
标签: ruby-on-rails ruby activeadmin