我有通知模型。每个实例都属于用户模型和Book模型。
class Notification < ActiveRecord::Base
belongs_to :texto, :foreign_key => "text"
belongs_to :usuario, :foreign_key => "user_related"
我的通知模型中也定义了一些范围
scope :pending, ->(current_usuario_id) {
joins(:texto).
where("texto.usuario_id = ? AND notification.user_related != ?", current_usuario_id, current_usuario_id).
where(:viewed => false)
}
所以我只是得到当前用户看不见的通知。但我得到了这个错误:
PG::UndefinedTable: ERROR: missing FROM-clause entry for table "texto"
知道怎么做对吗?
答案 0 :(得分:1)
joins()使用关联中定义的符号,因此joins(:texto)
是正确的。
另一方面,在&#34;其中&#34;您必须提供数据库中存在的表名。 Rails在创建模型名称后复数表名。
在控制台中运行
ActiveRecord::Base.connection.tables.include?("textos")
将确保表名是&#34; textos&#34;而不是&#34; texto&#34;。