我的两个型号是
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
我重置数据库并仍然收到相同的错误
答案 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