Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails路由/多态性问题-如何对以下内容建模_Ruby On Rails_Ruby_Routing_Polymorphism - Fatal编程技术网

Ruby on rails Rails路由/多态性问题-如何对以下内容建模

Ruby on rails Rails路由/多态性问题-如何对以下内容建模,ruby-on-rails,ruby,routing,polymorphism,Ruby On Rails,Ruby,Routing,Polymorphism,我有一个应用程序,其中“用户”属于“客户”或“供应商”(客户和供应商有很多用户)。在admin名称空间中,我想管理这些用户——因此管理员会选择一个客户机或供应商,然后导航到该客户机或供应商的用户。我的问题是,除了使用户模型具有多态性之外,我如何对其进行建模/路由 以下是我在路线方面的经验: map.namespace :admin do |admin| admin.resources :clients admin.resources :vendors end map.namespace:

我有一个应用程序,其中“用户”属于“客户”或“供应商”(客户和供应商有很多用户)。在admin名称空间中,我想管理这些用户——因此管理员会选择一个客户机或供应商,然后导航到该客户机或供应商的用户。我的问题是,除了使用户模型具有多态性之外,我如何对其进行建模/路由

以下是我在路线方面的经验:

map.namespace :admin do |admin| admin.resources :clients admin.resources :vendors end map.namespace:admin do | admin| 管理资源:客户 管理资源:供应商 结束 我知道我可以这样做:

map.namespace :admin do |admin| admin.resources :clients do |client| client.resources :users end admin.resources :vendors do |vendor| vendor.resources :users end end map.namespace:admin do | admin| admin.resources:客户不需要|客户| client.resources:用户 结束 admin.resources:供应商做|供应商| 供应商资源:用户 结束 结束 但是上面肯定需要我将用户视为多态的

我只是想知道你会推荐什么或者我有什么选择


谢谢。

我将尝试第二种解决方案,并构建如下链接:

<%= 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
。您还可以将此数组语法用于表单等。这将非常简单,您应该不会遇到多态路由的问题