2010-04-01 43 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

相关问题