0

これらは私のテーブルです:

create_table :messages do |t|
  t.integer :type
  t.string :text
  t.datetime :sent_date
  t.string :sender
  t.timestamps
end

create_table :users do |t|
  t.integer :phone
  t.string :fullname
  t.string :profile_image
  t.timestamps
end

create_table :send_tos do |t|
  t.string :receiver
  t.belongs_to :message
  t.boolean :is_received
end

これらはモデルクラスです:

class User < ActiveRecord::Base
  has_many :send_tos, :foreign_key => 'receiver'
  has_many :messages, :foreign_key => 'sender'
end

class Message < ActiveRecord::Base
  belongs_to :user, :foreign_key => 'sender'
  has_many :send_tos
end

class Send_to < ActiveRecord::Base
  belongs_to :user, :foreign_key => "receiver"
  belongs_to :message
end

Rails コンソールでこれらのコマンドを実行すると、次のようになります。

m = Message.new
m.save
s = Send_to.new
s.message = m
s.save
m.send_tos

コマンドの後、次のm.send_tosエラーが発生します。

RuntimeError: 定数 SendTo の自動読み込み中に循環依存関係が検出されました

このエラーが発生するのはなぜですか? 変更するにはどうすればよいですか?

4

1 に答える 1

3

Send_toクラスの名前を に変更しSendToます。これは、Rails がその関係について想定している命名規則に従います。それが入っているファイルの名前はsend_to.rb

于 2013-10-09T06:45:41.147 に答える