【问题标题】:How to get custom inflected class working with has_and_belongs_to_many如何使用 has_and_belongs_to_many 获得自定义变形类
【发布时间】:2019-11-22 02:20:04
【问题描述】:

我有两个班级:

class DataGeneratingModule < ActiveRecord::Base
  has_and_belongs_to_many :action_coordinates
end

class ActionCoordinates < ActiveRecord::Base
  include SingleTableInheritable

  has_and_belongs_to_many :data_generating_modules
end

ActionCoordinates 在这里故意总是复数。在域中使用单数是没有意义的

所以我创建了一个自定义变形器

ActiveSupport::Inflector.inflections do |inflect|
 inflect.irregular 'action_coordinates', 'action_coordinates'
end

然后我打电话给DataGeneratingModule.first.action_coordinates

我得到一个错误提示

NameError (uninitialized constant DataGeneratingModule::ActionCoordinate)

如果您注意到它正在寻找具有单数 ActionCoordinate 的类定义

虽然自定义变形器似乎正在工作,但实例方法存在,但是在查找类定义时似乎没有应用变形器。

有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails activerecord ruby-on-rails-5


    【解决方案1】:

    感觉我不应该在这里这样做,但我必须指定类名:

    has_and_belongs_to_many :action_coordinates, class_name: "ActionCoordinates"

    【讨论】:

      猜你喜欢
      • 2021-01-16
      • 2015-01-07
      • 2011-08-16
      • 2011-07-11
      • 2021-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多