Sql 从另一个模型访问用户名

Sql 从另一个模型访问用户名,sql,ruby-on-rails,ruby-on-rails-4,Sql,Ruby On Rails,Ruby On Rails 4,我的模型中有以下关系: class User < ActiveRecord::Base has_one :tutor, dependent: :destroy has_many :messages end class Tutor < ActiveRecord::Base belongs_to :user has_many :messages, :foreign_key => 'recipient_id' end class Message < Acti

我的模型中有以下关系:

class User < ActiveRecord::Base
  has_one :tutor, dependent: :destroy
  has_many :messages
end

class Tutor < ActiveRecord::Base
  belongs_to :user
  has_many :messages, :foreign_key => 'recipient_id'
end

class Message < ActiveRecord::Base
  belongs_to :users
  belongs_to :tutors
end

我基本上想从
收件人id
中获取
用户名。我设置的不正确吗?我应该加入还是怎么做?

您的
属于
消息中的关联声明不正确。详情请参阅“”

因此,更新您的
消息
模型应该可以解决这个问题:

class Message < ActiveRecord::Base
  # use singular :user and :tutor here

  belongs_to :user 
  belongs_to :tutor
end

好,这适用于Message.first.user。然而,正如我(拙劣地)解释的那样,我希望从另一个用户
recipient\u id
获取用户名。这样做是不正确的:
User.find(Message.first.recipient\u id,选择:'first\u name,last\u name')
?所以,我知道这看起来很可怕,但我想这就是我所指的:
User.find(Tutor.find(Message.first.recipient\u id))
实际上这似乎不正常。但是这是:
Tutor.find(message.recipient\u id).user
…哇,真是一团糟。。。
 Message.first.users   Message Load (0.3ms)  SELECT "messages".* FROM
 "messages" ORDER BY "messages"."id" ASC LIMIT 1  => nil
class Message < ActiveRecord::Base
  # use singular :user and :tutor here

  belongs_to :user 
  belongs_to :tutor
end
Message.first.user