0

私は 2 つのクラスを持っており、PSAとはhas_many: & :through によってZIP関連付けられています。PSAZIP

各クラスで次のエラーがスローされます。

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

両方のクラスが完全に大文字である場合の構文と大文字小文字の文法は何ですか? 他に 2 つのクラス関係 (PSAState、rb ファイル名はpsa_state.rb) がある場合。

の名前を に変更するpsazip.rb必要がありpsa_zip.rbますか? もしそうなら、他にどこで変更を加える必要がありますか?

4

1 に答える 1

1

あなたが持っているものはそのまま動作するはずです。

Rails は、キャメル ケースで記述されたクラス名をファイル名の小文字/アンダースコア形式に変換します。PSAZIPそれはただの一言だと思います。キャメル ケースとは見なされないため、psazip代わりに が生成されpsa_zipます。PsaZipまたはを使用PSAZipしていれば、 が生成されpsa_zipます。

ただし、クラス名を一貫して使用している限り、すべてがそのまま機能するはずですPsazip

于 2012-12-11T07:17:30.673 に答える