2011-11-27 12 views
0

を返していない私はRailsのでモデルを持っているがStatisticsと呼ばれ、誰かが私のページを訪問するたびに、私はモデルで自分のIPを記録し、保存します。これは私のモデルは、現在どのように見えるかです:RailsとActiveRecordは - IPで行を見つけることは何も

Statistics(id: integer, ip: string, ...); 

例レコード・リターンは次のようになります。

#<Statistics id: 700, ip: "10.0.2.2", ...> 

しかし、私はRailsのコンソールを入力して、レコードを検索してみてください:

ruby-1.9.2-p290 :175 > Statistics.find_all_by_ip("10.0.2.2") 
Statistics Load (0.8ms) SELECT "statistics".* FROM "statistics" WHERE "statistics"."ip" = '10.0.2.2' 
=> [] 

私はいつもIPは、私が知らないことに対処するために

は、彼らがレールに任意の癖です。..空のリターンを得ます?なぜこれがうまくいかないのか分かりません。

+0

あなたは 'find_all_by_ip'だけではなく、' find_by_ip'を呼び出している任意の理由は? – Andrew

+0

申し訳ありませんああ、それはちょうど私のコードのいくつかの残党が、いずれかの方法で、 'find_by_ip'と' find_all_by_ip'両方リターンゼロでした。 – Kevin

答えて

1

私の最初の仮定は、SQLiteのは、UTFを使用するのに対し、IPアドレスは、Addrinfoからの値を使用して格納されたことです。これはあなたが言及していないSQLiteを使用していることを前提としています。

See my previous answer I gave covering this in some detail.

+0

それはそれをしました!私は 'request.ip'を使ってそれを直接データベースに保存していました。そしてあなたは正しいです、私はSQLiteを使用していました。本当にありがとう! – Kevin