我有一个资源,库存,需要根据上下文“显示”4种不同的方式。解决这个问题的最佳方法是什么?
我在想我可以传入一个参数(param [:context]),该参数会让“show”动作呈现正确的视图。或者也许我应该制作另一个控制器,尽管这似乎有点多。当您希望保持RESTful但有一个资源需要以多种不同方式显示时,最佳实践/一般准则是什么?
答案 0 :(得分:1)
问题很棘手,因为有很多选择,但答案取决于你想做什么。
上下文是否代表模型中的某些内容?然后你应该使用不同的模型和不同的控制器。
上下文是否代表REST操作以外的其他内容?添加自定义REST操作(http://railscasts.com/episodes/35-custom-rest-actions)及其各自的路径(在我看来你在这里尝试做什么)。
视图是否等效,只是使用不同的标记?您可以使用单元格(http://cells.rubyforge.org/)来抽象您的演示文稿模式。
如果您不想破坏RESTful状态,我会强烈反对创建多个操作,但最终也可以解决这个问题。
答案 1 :(得分:0)
我会对每个对象所需的每种“show”使用不同的动作,这样你就不必担心传递上下文变量并分离要渲染的视图。
只需确保路由设置正确,并链接到您设置的不同上下文类型的正确操作。