在URL(rails路由)中组合控制器名称

时间:2012-03-17 23:17:01

标签: ruby-on-rails ruby

我有一个房地产网站,我想订购每个出版物的网址。

出版物管制员有这样的关系:

type_id(出售房屋,出租房屋等) country_id(美国,意大利,阿根廷等) state_id(纽约,罗马,布宜诺斯艾利斯等)

我希望每个出版物的路径如下:

http://www.domain.com/publication/house-for-sale/usa/new-york/24-street-therestofaddress

在routes.conf中存在任何方法?

我使用的是friendly_id gem,我喜欢在没有静态路由的情况下工作。

非常感谢

1 个答案:

答案 0 :(得分:0)

您可以使用static segments

match 'publication/:type/:country/:state/:id' => 'publications#show'

然后在您的控制器中,您可以访问所有这些参数。例如,考虑控制器操作将处理的URL http://www.domain.com/publication/house-for-sale/usa/new-york/24-street-therestofaddress

class PublicationController < ApplicationController
  def show
    params[:type]     # "house-for-sale"
    params[:country]  # "usa"
    params[:state]    # "new-york"
    params[:id]       # 24
  end
end