RoR4应用。我有一个页面X,显示电子商务网站中的定价。因此,有一个定价控制器,其索引页面显示定价内容。有一个购买按钮,需要做以下事情:
我的困境: 我应该添加新的购买控制器吗?或在现有的定价控制器中添加新方法购买。
答案 0 :(得分:1)
这完全取决于您是否希望您的应用程序是RESTful。即使您的定价控制器目前只有索引操作,您可能希望以后创建new/edit
操作(以添加价格),从而创建相应的create/update
操作。
当然,如果你不想成为RESTful,那么你可以添加你想要的任何方法。但是,我认为遵循RESTful模式只是一个好习惯。这样的设计具有良好的定义和认可的语义,并且还可以防止控制器混乱。
因此,如果您决定使用购买控制器,我建议您执行以下操作:
create
操作作为购买按钮的目的地。create
操作上添加一个before_action
过滤器,用于检查身份验证。update
操作,您可以在步骤3中使用返回信息更新您的记录(我更喜欢保存整个响应正文),然后根据状态重定向在内部重定向到您的定价页面,以防成功或某些错误处理页面。我并不是说这是唯一可行的解决方案。但是,根据我之前的经验,我了解到将详细的事务日志保存在您自己的数据库中对于将来解决问题非常有用。
所以,最后的答案是更喜欢单独的控制器,而不是添加一个不完全适合现有控制器的unRESTful方法。
答案 1 :(得分:0)
我认为拥有另一个控制器是好事,因为控制器的名称是定价控制器,我认为这并不能说明对付款或交易的担忧。
如何将新控制器设为payments_controller.rb
或transactions_controller.rb
定价名称本身表示一些与价格相关的内容,其中付款或交易名称表示该功能的更接近目的。