【问题标题】:Plural Name in Association in RailsRails 中关联的复数名称
【发布时间】:2013-03-06 18:02:17
【问题描述】:

我有用户模型和汽车模型

我想要一个模型来保存每辆车和每个用户的设置

我是这样的

class CarSettings < ActiveRecord::Base

  belongs_to :user
  belongs_to :car
end

对于用户:

  has_many :car_settings

对于汽车:

  has_many :car_settings
  has_many :users, :through => :car_settings

注意名称 CarSettings,这不是错误,我希望它是 settings 而不是设置

当我这样做时

c=Car.first
c.users

我明白了

NameError: uninitialized constant Car::CarSetting
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/activerecord-3.2.12/lib/active_record/inheritance.rb:111:in `compute_type'

它正在寻找一个单一的 car_setting 而不是 car_settings。

我该如何解决这个问题?

【问题讨论】:

  • 我刚看到它,添加了一个仍然导致它的变形。我添加了inflect.uncountable %w(car_settings)
  • 对不起,如果这听起来很愚蠢,你重启 Rails 了吗?
  • 是的,我看到变形有效,因为它没有给我 car_setting 和 car_settings,但我仍然得到那个错误

标签: ruby-on-rails-3 associations relationship model-associations plural


【解决方案1】:

您可以使用此选项强制关联上的类名:

has_many :car_settings, :class_name => "CarSettings"

【讨论】:

  • Rails 将假定所有模型名称都是单数的。所以你需要强制它是复数。
猜你喜欢
  • 1970-01-01
  • 2014-07-12
  • 1970-01-01
  • 2015-04-13
  • 2023-03-06
  • 1970-01-01
  • 2013-05-19
  • 1970-01-01
  • 2018-11-11
相关资源
最近更新 更多