Postgresql 活动记录生成错误的查询

Postgresql 活动记录生成错误的查询,postgresql,activerecord,heroku,sinatra,Postgresql,Activerecord,Heroku,Sinatra,我正在尝试执行一个非常简单的活动记录查询: @row = Blazer.where(username: 'test').first PostgreSQL生成: Blazer.where(username: 'test').to_sql 产出: SELECT "blazer".* FROM "blazer" WHERE "username"."value" = 'test' 这会导致错误: ERROR -- : PG::UndefinedTable: ERROR: missing FRO

我正在尝试执行一个非常简单的活动记录查询:

@row = Blazer.where(username: 'test').first
PostgreSQL生成:

Blazer.where(username: 'test').to_sql 
产出:

SELECT "blazer".* FROM "blazer" WHERE "username"."value" = 'test'
这会导致错误:

ERROR -- : PG::UndefinedTable: ERROR:  missing FROM-clause entry for table "username"
我期望得到以下PostgreSQL结果:

SELECT "blazer".* FROM "blazer" WHERE "username" = 'test'
我怎样才能解决这个问题

我正在使用Sinatra的active record,该应用程序在Heroku上运行

我的运动夹克等级如下:

class Blazer < ActiveRecord::Base
    # phone:string username:string location:string
end

也许这不是正确的答案,但我得到了同样的错误

我在找一个有特定名字的场地

venue_name = params.require(:season).permit([:venue_name])
venue = Venue.find_by_name(venue_name)
我也试过了

venue = Venue.where(name: venue_name).first 
由于正在尝试此查询,两个都未能说出

SELECT  "venues".* FROM "venues"  WHERE "name"."venue_name" = 'venue name' LIMIT 1)
当我在控制台中尝试此操作时,一切看起来都正常。但当我检查我要找的东西时,我发现很明显

params.require(:season).permit([:venue_name])
返回一个散列,其中只有一个名称作为键,因此我没有查找键,而是查找一个散列


我切换到params.require:seasure.permit[:场馆名称][:场馆名称],问题已经解决。

@muistooshort请查看我的更新。嗯,这很奇怪。Blazer.wherephone:'x'。to_sql说什么?Gemfile使用arel 4.0.1使用activerecord 4.0.2使用pg 0.17.1,然后使用:User.wherefirst_name:'Tom'进行测试。to_sql输出:选择用户。*来自用户所在的用户。first_name='Tom检查默认范围?谢谢您的回答。我今晚去查一下。