2011-06-25 62 views
2

我在學習rails,我只是試圖讓基礎知識失效。Rails返回用戶數

我剛剛安裝了設計並創建了一個家庭控制器。如果我想獲得用戶數量(只需返回數據庫中的記錄數),那麼我應該從家用控制器上做些什麼?它應該與模型進行交互,對吧? home控制器可以與users型號和home型號交互嗎?或者那是不好的做法?

我知道我可以做一個簡單的谷歌搜索這個,但我有很多問題和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

喜歡的東西

User.all.length 
User.count 

應該工作,其中第一個是非常低效的,第二個要好得多Rails的風格添加一些東西。

直接訪問它並不是一個壞主意。爲什麼不?

+1

'User.all.length'是解決這個問題的最低效方式。 – Dogbert

+1

我知道'count'的效率更高。應該可能提到過。 – slhck