2012-12-26 60 views
2

嘿傢伙,聖誕快樂!關於Ruby on Rails的一般疑問

我是新來的Ruby on Rails和我還是有點困惑的一些東西:

我什麼時候需要什麼時候不創建一個新的控制器和?

我想用一個搜索框創建一個應用程序並搜索所有文章。我應該爲首頁(搜索框)和搜索創建一個控制器嗎?我應該爲靜態頁面創建控制器嗎?

我應該使用管理界面寶石還是創建自己的?

正常用戶現在應該有權創建文章,只需管理員。我應該使用其中一個管理界面寶石還是創建自己的?

回答

2

Ruby on Rails遵循MVC框架,控制器是包含您的操作的類,所以您需要爲您的網站將提供的每個功能添加一個操作。 從技術上講,您可以在一個控制器中執行所有操作,但這會非常糟糕,所以我們通常會創建不同的控制器來更好地組織您的路由和代碼。 Follow the Rails guide on controllers.

對於管理界面的寶石,你可以使用devisecancan,他們都是非常可靠和行之有效的。

+0

ActiveAdmin寶石也值得一看 – Nazar

1

聖誕快樂!

由於Khaled建議Rails是MVC體系結構,每個頁面的控制器總是很好的。即使您現在可能有一個靜態頁面,但是當您嘗試使網站變爲動態頁面時,後面的頁面可能會混淆在哪裏添加特定視圖頁面的方法。

通常最好使用寶石,而不是從頭開始。 你可以看看這個link,它教你如何使用設計和cancan與twitter bootstrap(視圖)。但是如果你打算學習鐵軌,那麼我最好建議你從頭開始做,因爲你將會知道發生了什麼。你可以看到這個tutorial,它通過從頭開始執行大部分任務。

享受Rails!

2

Ruby on Rails確實是MVC,這意味着控制器將模型連接到視圖。因此,總的來說,考慮更多資源導向是一種很好的做法:每個想要找到/呈現的資源都需要創建一個控制器。你的情況是這樣的:

  • ArticlesController:你的主要觀點,與搜索框
  • PagesController:對於靜態頁面,如果你需要一些ERB/HAML
  • admin/ArticlesController:對物品的管理

現在,完全靜態的頁面可以放置在public文件夾下,除非需要一些動態信息(例如文章總數),否則無需控制器。

關於您的搜索框:恕我直言,這只是您的索引頁面的一個參數。例如。在索引上顯示最近的十篇文章,並在搜索某個詞時,顯示相關文章,但是在相同的控制器和相同的操作上。

關於管理界面:是的,使用像rails_adminactive_admin這樣的寶石,它會讓你立即開始。所以一定要這樣做。但這些寶石當然是非常普遍的,可能完全不適合您的需求。它應該是這種情況,你可以隨時輕鬆恢復。

HTH。

+0

非常感謝您的答案。現在一切都更加清晰。 – nohayeye