在Rails中,在同一路径路径'/'上有两个不同的资源

时间:2015-04-08 23:57:32

标签: ruby-on-rails routes

我的应用中有用户和组织。我希望路线功能像Github一样,你基本上都有:

/约翰-DOE

/约翰斯组织

最好的方法是什么?

谢谢!

1 个答案:

答案 0 :(得分:2)

如果您使用ActiveRecord进行数据访问,请不要介意修改模型, 然后Polymorphic AssociationsSingle table inheritance应该有效。

使用单表继承的想法,我们可以使用我们的模型:

class Resource < ActiveRecord::Base; end
class User < Resource; end
class Organization < Resource; end

和我们的表如下:

+----+----------------+-------------------+--------------------+
| id | Type           | Name              | Slug               |
+----+----------------+-------------------+--------------------+
| 1  | Users          | John Doe          | john-doe           |
| 2  | Organizations  | John Organization | johns-organization |
+----+----------------+-------------------+--------------------+

然后我们应该能够使用

访问资源
resource = Resource.where(slug: 'john-doe').first
resource.type # user or organization
# which you can use to decide how to render the views accordingly.