Rails - 自连接祖先,可能有嵌套路线和 slug?
Rails - Self joins with ancestry, possible to have nested routes and slugs?
目标是创建以下 URL 路线:
localhost:3000/category-1/location-1/
localhost:3000/category-1/location-1/sub-location-2
localhost:3000/category-1/location-1/sub-location-2/sub-location-3
我有一系列已被分成几类的地点。每个位置可以属于1个类别,也可以属于1个位置,或者是一个根位置。
Category.rb
has_many :locations
Location.rb
belongs_to :category
has_ancestry
我考虑过将我的 Location 模型拆分为 Location 和 SubLocation,但它不够灵活,无法支持所有可能的位置。这将是理想的结构,但我不确定它是否支持这样的路由。
理想情况下,路由还支持通过 gem Friendly_Id 使用 slug,但目前这些仅适用于类别模型。
我该怎么做才能让我的路线像这样工作?
get ':category/:location', to: 'locations#action1'
get ':category/:location/:sublocation', to: 'locations#action2'
get ':category/:location/:sublocation/:subsublocation', to: 'locations#action3'
有关详细信息,请参阅 Rails Routing from the Outside In
目标是创建以下 URL 路线:
localhost:3000/category-1/location-1/
localhost:3000/category-1/location-1/sub-location-2
localhost:3000/category-1/location-1/sub-location-2/sub-location-3
我有一系列已被分成几类的地点。每个位置可以属于1个类别,也可以属于1个位置,或者是一个根位置。
Category.rb
has_many :locations
Location.rb
belongs_to :category
has_ancestry
我考虑过将我的 Location 模型拆分为 Location 和 SubLocation,但它不够灵活,无法支持所有可能的位置。这将是理想的结构,但我不确定它是否支持这样的路由。
理想情况下,路由还支持通过 gem Friendly_Id 使用 slug,但目前这些仅适用于类别模型。
我该怎么做才能让我的路线像这样工作?
get ':category/:location', to: 'locations#action1'
get ':category/:location/:sublocation', to: 'locations#action2'
get ':category/:location/:sublocation/:subsublocation', to: 'locations#action3'
有关详细信息,请参阅 Rails Routing from the Outside In