Ruby on rails 从另一个表访问属性-rails
一个用户可以有很多导师,导师属于用户Ruby on rails 从另一个表访问属性-rails,ruby-on-rails,Ruby On Rails,一个用户可以有很多导师,导师属于用户 class User < ApplicationRecord # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable and :omniauthable devise :database_authenticatable, :registerable, :recoverable, :re
class User < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable,
:confirmable, :omniauthable
validates :firstname, :lastname, presence: true
has_many :mentors
class MentorsController < ApplicationController
before_action :set_mentor, except: [:index, :new, :create]
before_action :authenticate_user!, except: [:show]
before_action :is_authorised, only: [:lesson]
class用户
如何在用户页面上显示“导师课程”属性?我试图做一些类似“{@user.mentor.lesson}”的事情,但没有成功:(
谢谢,
Lily如果一个用户有很多导师,那么
@User.mentors
将为您提供一个ActiveRecord\u Associations\u CollectionProxy
,每个导师对应一条以上的记录。您可以访问每个导师,但要获得导师的特定属性,您需要迭代此集合,如:
@user.mentors.each do |mentor|
puts mentor.lesson
end
你试图做的与你需要做的相反,因为一个导师属于一个用户,那么你可以
@mentor.user
获取特定用户并查询其属性,而无需迭代,但在你的情况下是访问导师的复数形式。如果一个用户有许多导师,那么@user.mentors
将ve您有一个ActiveRecord\u Associations\u CollectionProxy
,每个Mentor对应一条以上的记录。您可以访问每个Mentor,但要获得Mentor的特定属性,您需要迭代此集合,如:
@user.mentors.each do |mentor|
puts mentor.lesson
end
您试图做的与您需要做的相反,因为一个导师属于一个用户,那么您可以
@mentor.user
获取特定用户并查询其属性,而无需迭代,但在您的情况下,访问的是导师的复数形式。我可以检查一下,我是否应该在页面中添加位吗(对不起,我是Rails新手)你试过了吗?用以下方式解决:谢谢!我可以检查一下我是否显示了这个我应该向页面添加位吗(对不起,我是Rails新手)你试过了吗?用下面的方法解决:谢谢!