Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql Rails作用域与属于并具有通过关系 class Employee_Postgresql_Ruby On Rails 4_Model_Scope - Fatal编程技术网

Postgresql Rails作用域与属于并具有通过关系 class Employee

Postgresql Rails作用域与属于并具有通过关系 class Employee,postgresql,ruby-on-rails-4,model,scope,Postgresql,Ruby On Rails 4,Model,Scope,如何仅为具有特定员工可用性的时段创建范围?如果是,则将员工id传递到范围中 class Employee < ActiveRecord::Base has_many :availabilities has_many :time_slots, through: :availabilities end class TimeSlot < ActiveRecord::Base belongs_to :availability has_one :employee,

如何仅为具有特定员工可用性的时段创建范围?如果是,则将员工id传递到范围中

class Employee < ActiveRecord::Base
  has_many :availabilities
  has_many :time_slots, through: :availabilities    
end

class TimeSlot < ActiveRecord::Base

  belongs_to :availability
  has_one :employee, through: :availability
end

class Availability < ActiveRecord::Base
  belongs_to :employee
  has_many :time_slots 
end
class时隙(employee_id){joins(:availability)。其中(“availabilities.employee_id=?”,employee_id)如果employee_id.present?}
结束

问题出在哪里?当我调用类似TimeSlot的东西时。对于\u employee(1),它没有返回TimeSlot检查生成的SQL,看看它是否是您所需要的,只是更新了范围并得到了此错误。ActiveRecord::StatementInvalid:PG::UndefinedTable:错误:表“availabilities”的子句条目中缺少@AndreyDefineko谢谢,我添加了正确的范围。
class TimeSlot < ActiveRecord::Base

  belongs_to :availability
  has_one :employee, through: :availability

    scope :employee, -> (employee_id) { joins(:availability).where("availabilities.employee_id=?", employee_id) if employee_id.present? }
end