我正在使用3.1.0和M. Hartl的指南和Postgres在我的第一个直播Rails应用程序上工作。我已经转到第10章进行身份验证。而不是页面,我正在使用开口。除此之外,我正在关注他的用户,会议,从第6章开始。当我转到users / index.html.erb时,我收到以下错误:
PGError:ERROR:运算符不存在:字符变化=整数 第1行:...... CT“用户”。* FROM“users”WHERE“users”。“email”= 8 LIMIT
在stackoverflow上读取类似的字符串,似乎共识似乎是id字段未设置为整数。我可以确认它是整数。如果我要重新生成这个字段,在我看来,当我生成模型时,这个字段是由rails创建的。既然如此,我是否应该在早期迁移中重新生成一个由Rails自动生成的id字段?我似乎在某个地方读到了一个不好的主意。
但我不认为这是我的问题。查看错误使我认为它正在寻找用户的电子邮件是“8”而不是像'joe@example.com'。如果这是真的,那么我在预期的id字段和电子邮件字段之间存在不匹配。这是预期的,但我如何找到/理解我的不匹配?因为这是由于我的经验不足,我开始查看我的回溯,看看我是否能找到不同的东西。我通过在github上查看gabebw的副本而作弊,除了他的代码后面的章节之外没有发现任何不同。
我应该怎么做才能学会做什么?我在代码之间的@user,@ users,users,user之间的区别很难。我理解它的原因在于它是如何使用的,并且变量应该与视图,助手,控制器,模型中的关系相匹配。你是怎么学习的?如果有人愿意,我在我的github / sam452 / vitae中的authenticate1分支上遇到麻烦。 thx,sam452。
答案 0 :(得分:1)
重置并迁移数据库后,它似乎不是varchar。因此,查看身份验证方法,我发现用户模型在调用电子邮件字段时应该是id。所以电子邮件和id字段之间不匹配的理论是正确的。感谢。