繁体   English   中英

Rails管理员has_many通过关系导致错误

[英]rails admin has_many through relationship leading to errors

我正在使用rails_admin gem作为管理界面。

我有一个has_many通过关系似乎与Rails管理员不起作用。

class Company < ActiveRecord::Base
    has_many :talent_infos, class_name: 'CompanyTalentInfo'
    has_many :talents, through: :talent_infos
end

class CompanyTalentInfo < ActiveRecord::Base
    belongs_to :company
    belongs_to :talent
end

class Talent < ActiveRecord::Base
    has_many :talent_infos, class_name: 'CompanyTalentInfo'
    has_many :companies, through: :talent_infos
end

每次尝试创建新公司时都会出错,我的猜测是这是rails_admin第一次尝试检查关系并且它不接受我当前的关联。

我得到的错误是此文件gems / rails_admin-0.7.0 / app / views / rails_admin / main / _form_filtering_multiselect.html.haml:21

21     controller.list_entries(config, :index, field.associated_collection_scope, false).map { |o| [o.send(field.associated    _object_label_method), o.send(field.associated_primary_key)] }.sort_by {|a| [selected_ids.index(a[1]) || selected_ids.si    ze, i+=1] }

我得到这个错误

 undefined method `klass' for nil:NilClass`

谁能帮助我建立这种联系,我该如何解决。

也许是一个较晚的响应,但是您可以将数据库架构的相关部分与以下内容进行比较,让我知道其中的区别吗? 我相信关系建立正确,所以应该是问题所在。

create_table "companies", force: :cascade do |t|
  t.string "name"
end

create_table "company_talent_infos", force: :cascade do |t|
  t.string  "metadata"
  t.integer "company_id"
  t.integer "talent_id"
end

create_table "talents", force: :cascade do |t|
  t.string "name"
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM