2011-12-28 14 views
0

私は、HartlのガイドとPostgresで3.1.0を使用して私の最初のライブRailsアプリケーションでさらに作業しています。私は認証で働いている第10章に移動しました。ページの代わりに、私は開口部を使用しています。それとは別に、私は彼のユーザー、セッション、チャプ6からです。私は、ユーザー/ index.html.erbに行くとき、私は次のエラー取得しています:Hartlのレール3.0のサンプル '演算子が存在しません'

PGError: ERROR: operator does not exist: character varying = integer LINE 1: ...CT "users".* FROM "users" WHERE "users"."email" = 8 LIMIT

はstackoverflowの上の類似文字列上に読み取りを、コンセンサスは、idフィールドが整数に設定されていないことのようです。私はそれが整数であることを確認することができます。このフィールドを再生成する場合、モデルを生成するときにこのフィールドがレールによって作成されたように見えます。それが真実だから、Railsによって自動的に生成される初期の移行でidフィールドを再生成する必要がありますか?私はどこか読んでいるようですが、それは悪い考えです。

しかし、私はそれが私の問題だとは思わない。このエラーを見ると、「[email protected]」のようなものではなく、「8」というユーザーの電子メールを探していると思うようになります。それが正しいとすれば、予想されるidフィールドとemailフィールドの間に不一致があります。それは期待されますが、私のミスマッチをどのように見つけて理解するのですか?これは私の経験不足によるものなので、バックトレースを見て、私は何が違うのか分かりますか?私はgabebwのgithubのコピーを見て、彼のコードの後の章とは別のものを見つけていないことで、不正をしています。

どのようにすればいいのですか? @user、@users、users、code in userの違いに苦しんでいます。私はそれがどのように使用されているか、変数がビュー、ヘルパー、コントローラ、モデルの中のその関係まで一致する必要があるというコンテキストのために理解しています。どうやってそれを学びましたか?誰かが喜んでいるなら、私の悩んだプッシュは、authenticate1ブランチの私のgithub/sam452/vitaeにアップです。 thx、sam452。

答えて

1

データベースをリセットして移行した後は、varcharではないようです。だから認証メソッドを見て、私はそれがIDでなければならないときに、ユーザーモデルが電子メールフィールドを呼び出すことがわかった。したがって、電子メールとidフィールドの不一致が正しいという理論。ありがとう。

関連する問題