ruby-on-rails – 使用嵌套资源来干燥Rails视图

如果您有一个非嵌套和嵌套的模型,例如产品,那么您对该问题的解决方案是什么:

a “Product” can belong_to say an “Event”, and a Product can also just be independent.

这意味着我可以拥有这样的路线:

map.resources :products # /products
map.resources :events do |event|
  event.resources :products # /events/1/products
end

你如何正确处理你的观点?

注意:这适用于管理员面板.我希望能够拥有一个“创建事件”页面,其中包含用于创建票证(产品),表单和检查谁是rsvp的侧面板.所以你点击“活动门票”侧面板按钮,它会带你到/ events / my-new-event / tickets.但是管理面板还有一个根“产品”选项卡,可以列出门票和其他随机产品. “门票”和“产品”视图看起来相同,但门票将有一些关于它所属事件的信息.

好像我必须有这样的观点:

> products / index.haml
> products / show.haml
> events / products / index.haml
> events / products / show.haml

但这似乎并不干燥.或者我可以让条件检查以查看产品是否有事件(@ product.event.nil?),但是这些视图很难理解.

你如何处理这些情况?

非常感谢.

最佳答案 我建议您使用自己的视图创建单独的管理控制器来管理您想要的所有内容.并且您的客户的逻辑保留在产品控制器中.

点赞