用户可以有很多导师,导师属于用户
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]
如何在用户页面上显示指导者课程属性?我试图做一些像“#{@user.mentor.lesson}”这样的事情,但它不起作用:(。
谢谢,
百合
答案 0 :(得分:0)
如果用户有很多导师,那么@user.mentors
将为您提供ActiveRecord_Associations_CollectionProxy
,其中每个导师都会有超过1条记录。你可以访问它们,但要获得Mentor的特定属性,你需要迭代这个集合,如:
@user.mentors.each do |mentor|
puts mentor.lesson
end
您要做的是与您需要做的事情相反,因为一个导师属于一个用户,然后您可以@mentor.user
并获取特定用户并查询其属性而无需迭代,但在你的情况下访问复数的导师。