0

我有两个类,PSA它们ZIPPSAZIPhas_many: & :through 关联。

我在每个类中都抛出了以下错误:

psa.rb(由 生成rails g scaffold PSA

class Psa < ActiveRecord::Base
  has_many :psazips
  has_many :zips, :through => psazips
end

psazip.rb(由 生成rails g scaffold PSAZIP

class Psazip < ActiveRecord::Base
  belongs_to :psa
  belongs_to :zip
end

zip.rb(由 生成rails g scaffold ZIP

class Zip < ActiveRecord::Base
  has_many:psazips
  has_many:psas, :through => :psazips
end

当两个类完全是大写时,语法和大小写语法是什么?当我有另外两个类关系时(PSAState,rb 文件名是psa_state.rb)。

我必须重命名psazip.rbpsa_zip.rb吗?如果是这样,我还需要在哪里进行更改?

4

1 回答 1

1

你所拥有的应该按原样工作。

Rails 会将任何以驼峰形式编写的类名转换为文件名的小写/下划线形式。它认为PSAZIP只是一个词。它不将其视为驼峰式案例,因此它生成psazip而不是psa_zip. 如果您使用PsaZipor PSAZip,它会生成psa_zip.

但是,只要您始终使用类名,一切都应该按照您的方式工作Psazip

于 2012-12-11T07:17:30.673 回答