Объединить имена контроллеров в URL (маршруты рельсов) - PullRequest
0 голосов
/ 18 марта 2012

У меня есть сайт по недвижимости, и мне нравится заказывать URL каждой публикации.

Контроллер публикации имеет такое отношение:

type_id (Дом для продажи, Дом для аренды и т.д ..) country_id (США, Италия, Аргентина и др.) state_id (Нью-Йорк, Рома, Буэнос-Айрес и др.)

Путь к каждой публикации, я хочу быть таким:

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

Есть ли способ сделать это в rout.conf?

Я использую гем friendly_id и мне нравится работать без статических маршрутов.

Большое спасибо

1 Ответ

0 голосов
/ 18 марта 2012

Вы можете использовать статические сегменты :

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...