2011-06-25 1 views
2

私はレールを勉強しています。私は基本を理解しようとしています。Railsはユーザー数を返します

私はdeviseをインストールし、ホームコントローラを作成しました。ユーザー数(DB内のレコード数を返す)を取得したい場合は、ホームコントローラから何をする必要がありますか?モデルとやりとりする必要がありますよね? homeコントローラはusersモデルとhomeモデルと対話できますか?それとも悪い練習ですか?

私はこれについて簡単なGoogle検索を行うことができると知っていますが、私は多くの質問があり、Stackoverflowは合法です。 :)

さらに進んでください。

レコードが追加されたときにホームページのカウントが変更されるように、私はどのように 'ライブフィード'を取得しますか? 「ライブフィード」に関しては

が、それは難しいです)、彼らは、あなたがずっと行って取得されないことができなかった場合

答えて

7

User.countを使用しているユーザーの数を取得できます。テンプレートで

、あなたが

There are <%= User.count %> users. 
+1

そのクエリを直接ビューに入れるのは悪いフォームですか? –

+1

私はそうは思いませんが、実際にあなたのビューにクエリが欲しくない場合は、 '@user_count = User.count'のようなコントローラーでそれを割り当てることができます。次にビューで' @ user_count'を使います。 – Dogbert

+2

はい、MVCパターンが壊れます。ビューからSQLクエリをトリガするべきではありません。 – coreyward

0

あなたのコントローラはモデルの任意の数と相互作用することができます。おそらくCometのようなものを使用したいと思うでしょう。

+0

これはかなり良いですね。私の主な質問は、「ユーザー数を取得してホームページに表示するにはどうすればよいですか」... –

0

のようなものを追加することができます最初のものは非常に非効率的であり、第二の1つのより良いのRailsスタイルどこ

User.all.length 
User.count 

のようなものは、動作するはずです。

直接アクセスするのは必ずしも良い考えではありません。何故なの?

+1

'User.all.length'はこれを解決する最も効率の悪い方法です。 – Dogbert

+1

私は知っている、 'カウント'はより効率的です。おそらくそれを言及しているはずです。 – slhck

関連する問題