Простой способ решить эту проблему - создать суб-контроллер:
class RestaurantsController < PropertiesController
end
На маршрутах вы сопоставляете рестораны контроллеру ресторанов.
Обновление: В качестве альтернативы вы можете попробовать что-то подобное в вашем routes.rb
:
map.resources :restaurants, :controller => :properties, :requirements => {:what => :Restaurant}
map.resources :properties, :requirements => {:what => :Property}
Затем вы можете использовать фильтр before для проверки параметров [: что] и соответственно изменить поведение.
Пример:
class PropertiesController < ApplicationController
before_filter select_model
def select_model
@model = params[:what].constantize
end
def show
@model.find(params[:id])
...
end
...
end