Rails belongs_to关于具有下划线的模型名称的关联

时间:2016-07-07 16:50:59

标签: ruby-on-rails ruby-on-rails-4

嘿伙计我通过使用下划线而不是类似名称(Ui_1_Log而不是Ui1Log)来破坏一些rails约定,现在当我引用该关联时它找不到合适的类。例如:

class Ui_1_Log < ActiveRecord::Base
  belongs_to :account
end

class Account < ActiveRecord::Base
  has_many :ui_1_logs
end

现在当我在rails控制台中调用该关联时,它不起作用,因为当需要保留下划线时它返回一个类名为Camelcase ...

x = Account.first
x.ui_1_logs.first  #returns nameError: uninitialized constant Account::Ui1Log 

它需要是Account :: Ui_1_Log,但我不知道如何强制...任何想法?!

1 个答案:

答案 0 :(得分:1)

您可以使用class_name选项在关联上设置班级名称

class Account < ActiveRecord::Base
  has_many :ui_1_logs, class_name: 'Ui_1_Log'
end

但我仍然建议您遵循惯例