Admin :: ResidentsController中的NameError#destroy Rails

nnd*_*nnd 2 ruby activerecord ruby-on-rails activemodel activeadmin

当我使用活动管理员删除常驻模型对象时,我收到名称错误

我有常驻模特:

class Resident < ActiveRecord::Base
  has_many :leaves,dependent: :delete_all
end
Run Code Online (Sandbox Code Playgroud)

第二个是离开模型:

class Leave < ActiveRecord::Base
  belongs_to :resident
end
Run Code Online (Sandbox Code Playgroud)

给我以下错误:

删除常驻时我得到的错误

此外导轨误解名字,并把它改为leafe ..所以我改名或者重构文件:装饰/ leafe_decorator.rb 装饰/ leave_decorator.rb

类似于装饰测试.

现在我再次通过我的整个代码搜索Leafe Keyword,但它不存在.仍然得到那个错误.我该怎么办 ?

Dan*_*ski 6

这是因为Rails的集成复数规则对"叶子"这个词产生了错误的单数(无论如何应该是"叶子")

你可以改变你的模型以匹配预期的单词"leafe",或者你可以教Rails正确的单数形式.

为此,只需将其添加到初始化程序:

ActiveSupport::Inflector.inflections do |inflect|
  inflect.irregular 'leave', 'leaves'
end
Run Code Online (Sandbox Code Playgroud)

应该已经有一个inflections.rb在initializers目录中命名的文件,该文件记录了各种其他Rails变形功能.

这样您的原始代码就可以工作,而无需重命名任何文件或模型.