rails_admin无法删除HABTM对象

时间:2014-07-05 11:14:05

标签: ruby-on-rails-4 has-and-belongs-to-many rails-admin

我的两个型号是

class Team < ActiveRecord::Base
  has_and_belongs_to_many :releases
end

class Release < ActiveRecord::Base
  has_and_belongs_to_many :teams
end

class ReleasesTeam < ActiveRecord::Base
end

当我尝试删除rails_admin上的团队或发布时,我收到错误:

undefined method `releases_teams' for #<Release:0x007fe57b0a9f20>

在这条线上提出

def method_missing(method, *args, &block)
  if respond_to_without_attributes?(method, true)
    super
  else
    match = match_attribute_method?(method.to_s)
    match ? attribute_missing(match, *args, &block) : super #ERROR RAISED HERE
  end
end

我在这里缺少什么?

修改

在Pavan的评论之后,我删除了ReleasesTeam模型。 DB模式现在看起来像这样:

create_table "releases", force: true do |t|
  t.text     "notes"
end

create_table "teams", force: true do |t|
  t.string   "name"
end

create_table "releases_teams", id: false, force: true do |t|
  t.integer "team_id"
  t.integer "release_id"
end

我重置数据库并仍然收到相同的错误

1 个答案:

答案 0 :(得分:1)

将Rails更新为4.1.4。

<强>问题

https://github.com/sferik/rails_admin/issues/1984

thebenedict发表了评论

这是一个rails问题,而不是rails_admin。 HABTM实现在rails 4中以一种破坏关联名称反射的方式发生了变化。在4-1-stable中有一个修复,并且将rails升级到4.1.4为我解决了这个问题。另请参阅rails/rails#14682