2010-04-01 78 views
0

[Rails]把這段代碼放在哪裏?該放哪些代碼?

我有一個用戶1,當另一個註冊用戶2看到用戶1的個人資料時,有一些按鈕:['加爲朋友','給我你的電話','給我你的電子郵件','問她','查看照片']。 1,2,3,4是POST,帶有AJAX。現在,我必須創建一個名爲「ProfileActionsController」的新控制器,或者我應該將這些代碼放在'UsersController'中?

或者可能是另一個可能性?謝謝;)

回答

1

你可以做到這一點。爲了避免UsersController變得太笨重,你應該把它放在新的控制器上,這將有助於維護。

+0

謝謝 我看到有人在應用程序文件夾中有更多的文件夾。正常是模型控制器視圖..但他們也有主持人,另一個我不記得..你知道這件事嗎? – 2010-04-01 14:00:01

0

如果它是對用戶進行的操作(即在某種程度上通過其模型修改用戶),那麼理想情況下應該將這些操作放在users_controller中。

1

您很可能必須將這些關係中的一些存儲在不同的數據庫表中。例如,Userhas_many :friends。這種設計鼓勵Friend模型。這導致FriendsController和像POST /user/1/friend這樣的網址在當前用戶(用戶2)和用戶1之間建立友誼。

這些屬於單獨的控制器。

如果你需要更多的Ajax行動上的用戶,在UsersController定義它們是正確的地方。 「給我你的電話號碼」,「給我你的電子郵件」和「查看照片」,取決於需求,可能是html的隱藏部分,或簡單的Ajax GET請求到UserController來呈現部分或JSON。

那些可以留在UserController的

通常建議:總是試圖留在7個動作每個控制器內(新,創建,編輯,更新,索引,展示,銷燬) - 當你覺得你需要定義你自己的行爲,想想它最接近的7個。它可以優雅地結合起來嗎?如果不是,那麼它是在一個單獨的概念上行事嗎?

+0

我有超過7個行動的控制器,我怎麼能做到他們更好地工作,代碼變得有點混亂... 我有胖模型和薄控制器。模型是真的很胖..:s 我聽說應用程序文件夾中的一些更多的文件夾,如主持人或類似的東西,但我不記得很好.. – 2010-04-03 14:26:46

相關問題