以下是关系:
class Tutor
has_many :subjects, through: :profile
has_one :profile, dependent: :destroy
end
class Profile
belongs_to :tutor
has_many :subjects, through: :profile_subjects
has_many :profile_subjects
end
class Subject
has_many :profile_subjects
has_many :profiles, through: :profile_subjects
has_many :tutors, through: :profiles
end
# the join model for Profile and Subject
class ProfileSubject
belongs_to :profile
belongs_to :subject
end
现在以前,当我使用sqlite3数据库时,它完全正常工作。但是在部署到生产环境时,由于数据库是Postgres,我会收到错误。
这是一个简单的例子,说明我所做的事情会引发错误
subject = Subject.first
subject.tutors
正在返回的错误是
ActiveRecord::StatementInvalid: PG::UndefinedFunction: ERROR: operator does not exist: integer = character varying
据我了解(或被告知),这意味着我试图将varchar
与integer
字段进行比较(或加入)。
我实际上尝试做的事情的大局是Subject.where("name LIKE ?", "#{name}")
,并且能够找到所有tutors
的查询subject
。我如何通过subject
访问辅导员?
(我只想指出这些关联在sqlite3上运行得很好)