[英]Rails routing/polymorphism issue - how to model the following
我有一个应用程序,其中“用户”属于“客户端”或“供应商”(客户端和供应商has_many用户)。 在admin名称空间中,我要管理这些用户-管理员可以选择一个客户或一个供应商,然后导航到该客户或供应商的用户。 我的问题是,除了不能使用户模型具有多态性外,我该如何对其建模/路由?
这是我在路由方面的优势:
map.namespace :admin do |admin| admin.resources :clients admin.resources :vendors end
我知道我可以做类似的事情:
map.namespace :admin do |admin| admin.resources :clients do |client| client.resources :users end admin.resources :vendors do |vendor| vendor.resources :users end end
但是以上绝对需要我将用户视为多态的。
我只是想知道您会建议什么,或者我有什么选择。
谢谢。
我会尝试第二种解决方案,并像这样构建您的链接:
<%= link_to @vendor_or_client.name, [:admin, @vendor_or_client, @user] %>
意思是:魔术自动来自数组语法。 渲染也是如此:
<%= render [:admin, @vendor_or_client, @user] %>
<%= render [:admin, @vendor_or_client] %>
它将分别自动呈现views/admin/users/_show.html.erb
或views/admin/{vendors,clients}/_show.html.erb
。 您也可以将Array语法与表单等一起使用。这将非常简单,多态路由也应该没有问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.