DatatypeMismatch:ERROR就在Postgres上,但在SQLite3中有效

时间:2016-01-21 16:44:11

标签: ruby-on-rails postgresql

我遇到了这个令人沮丧的错误。请帮忙!它在SQLite中工作正常,但在Postgres中抛出此错误

JobReekersController中的ActiveRecord :: StatementInvalid#export_single_record_csv PG :: DatatypeMismatch:错误:WHERE的参数必须是boolean类型,而不是类型整数LINE 1:SELECT“phones”。* FROM“phones”WHERE(11)ORDER BY“phone” ... ^:选择“电话”。*来自“电话”在哪里(11)订购“电话”。“id”ASC LIMIT 1

这是我在job_seekers控制器中的代码

 def self.to_csv
 CSV.generate(:converters => :all) do |csv|

  all.each do |job_seeker|

    data = Array.new
   phone = Phone.where("job_seeker_id = ?", job_seeker.id).first
    if !phone.mobile_number.blank?
      data.push(phone.mobile_number)
    else
      data.push('null')
    end

这是我在JobSeeker.rb中的代码

{{1}}

1 个答案:

答案 0 :(得分:0)

您的参数或数据库架构中似乎存在某种数据类型不匹配。我将登录到您的数据库并描述job_seekers表以查看所有列及其类型,确保迁移时没有错误。

我还会仔细查看电子邮件[0] .job_seeker_id中包含的内容以及会话[:email_jobseeker]。

您可以在从Postgres获取数据时在控制台中运行这些查询吗? 将JobSeeker.where("id = ?", 1)放入控制台后会发生什么?