我有两个班级PSA
和ZIP
,并且由PSAZIP
与has_many相关联:& :通过
我在每个课程中都会抛出以下错误:
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
当两个类完全是大写时,语法和大小写语法是什么?当我有两个其他类关系(PSA
和State
时,rb文件名为psa_state.rb
)。
我是否必须将psazip.rb
重命名为psa_zip.rb
?如果是这样,我还需要在哪里做出改变?
答案 0 :(得分:1)
你所拥有的应该按原样运作。
Rails会将用camel case编写的任何类名转换为文件名的小写/下划线形式。它认为PSAZIP
只是一个字。它不会将其视为驼峰,因此会生成psazip
而不是psa_zip
。如果您使用PsaZip
或PSAZip
,则会生成psa_zip
。
但是,只要您坚持使用类名Psazip
,一切都应该按照您的要求运作。