2013-01-12 39 views
0

我有一个控制器来处理测验中的CRUD操作,称为QuizController。REST API命名约定问题

然后,用户可以参加当前测验(一次只能有一个测验)。

很容易命名该控制器QuizController,如果命名空间不同,我也可以。但这对我来说并不足以描述。

它可以被称为QuizResultsController。但是那也不是很好。

你会如何命名这样的控制器,向用户显示当前测验,让他们提交答案?

回答

1

按照惯例,控制器处理您的测验的CRUD操作应该被称为QuizzesController,释放QuizController用于您所描述的上下文中。

这就是说,我会去与QuizzesControllerCurrentQuizController作出更大的区别。

+0

你说得对,它已经QuizzesController,我的坏。我想你也是在你建议的控制器名称的正确轨道上。唯一值得担忧的是,如果计划改变为可以在任何特定时间进行多次测验的地方,那么可能需要进行很多更改。虽然我可能会去...谢谢! – 99miles

+0

我知道,这与原始问题有点不同,但我很好奇,如果用户正在参加任何测验之一,您会将其称为控制器? – 99miles

1

您可以在QuizzesController上添加#current操作,该操作显示当前的测验,如果您不想创建整个单一用途的控制器。

+0

然后,我不得不添加另一种方法来处理表单提交,其中含有像#current_create这样的模糊内容。我正在争取单一职责。 – 99miles

+0

为什么不能在'QuizzesController'上使用传统方法来处理测验的创建和更新?也许我误解了你。我以为你只需要向用户显示当前的测验,以便他/她能够接受。我想'QuizzesController#current'呈现一个视图,该视图具有一个用户在接受它后提交给'QuizzesController#update'的窗体。我没有看到,除非您想根据来自当前测验或其他测验的信息呈现/重定向到某个地方,否则您不得不特别处理任何事情。 –

+0

取决于。如果我有一个单独的管理部分,我通常会有一个'Admin :: QuizzesController'。如果没有管理部分,那么'QuizzesController'和'CurrentQuizController'(或者其他所谓的)就有一个明确的例子。 –