![](/img/trans.png)
[英]Rails test with Capybara check if attribute of an element present or not
[英]Rails - Check if Parent model attribute is present
我想顯示已將其帳戶連接到我們的付款購買者提供商的教師列表。 當教師連接他們的付款帳戶時,它會更新用戶模型上的付款uid字段。
我們的模型設置如下:
class User < ActiveRecord::Base
has_one :teacher
class Teacher
belongs_to :user
我的老師控制器:
class TeachersController < ApplicationController
def index
@teachers = Teacher.order('created_at DESC')
end
我想顯示如下內容:
@teachers = Teacher.where(self.user.uid.present?).order('created_at DESC')
但是我返回了一個NoMethodError'未定義的方法'user'for TeachersController'
嘗試:
@teachers = Teacher.joins(:user).where.not('users.uid = ?',nil).order(created_at: :desc)
要么
valid_users = User.where.not(uid: nil).pluck(:id) # return array of all user's id which has not uid nil
@teachers = Teacher.where(user_id: valid_users).order(created_at: :desc)
使用范圍方法:
class Teacher < ActiveRecord::Base
...
def self.connected
includes(:user).where.not(users: { uid: nil }).references(:user)
end
...
end
您將這樣使用:
@teacher = Teacher.connected.order('created_at DESC')
假設您想要擁有用戶的老師?
@teachers = Teacher.where.not(user_id: nil).order(created_at: :desc)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.