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