Пользовательский URL в маршруте Rails - PullRequest
0 голосов
/ 16 ноября 2011

Я хочу добавить суффикс к своему URL в соответствии со столбцом type в моей таблице базы данных.

# shop_controller.rb
...
def near
  @shop = Shop.find(params[:id])
  @type = @shop.type
end

# routes.rb
resources :spots do
  member do
    get :near
  end
end

Страниц у меня в настоящее время в app/views/shops/nearby.html.erb. URL, который производится в настоящее время:

http://localhost/shops/1/near

Вместо создания нескольких страниц для разных типов: nearby_country.html.erb, nearby_state.html.erb, nearby_city.html.erb, что не является RESTful, я бы предпочел добавить тип в этот URL-адрес, чтобы отфильтровать магазины по типу, чтобы в будущем У меня есть больше типов, это может автоматически отображаться:

http://localhost/shops/1/near_country
http://localhost/shops/1/near_state
http://localhost/shops/1/near_city

Я также хочу иметь возможность сделать собственный путь для моего меню, например:

nearby_country_shop_path
nearby_state_shop_path
nearby_city_shop_path

Может кто-нибудь дать мне несколько подсказок? Спасибо!

Ответы [ 2 ]

1 голос
/ 18 декабря 2011

Это не совсем то, что вы просили, но вы можете добавить параметр x к вашему маршруту, например.

resources :spots do
  member do
    get 'near/:x', :action => :near, :as => :near
  end
end

Это должно дать вам такие URL, как:

/spots/1/near/country
/spots/1/near/state
/spots/1/near/city

.. и маршрут типа:

near_spot GET /spots/:id/near/:x(.:format) {:action=>"near", :controller=>"spots"}

.. и URL-помощники, такие как:

near_spot_path(spot_id, :country)
near_spot_path(spot_id, :state)

и т. Д.

1 голос
/ 16 ноября 2011

См. Раздел 3.1 в:

http://guides.rubyonrails.org/routing.html

но вам, вероятно, придется использовать такие маршруты, как:

http://localhost/shops/1/near?country
http://localhost/shops/1/near?state
http://localhost/shops/1/near?city

Смотри также:

http://railscasts.com/episodes/203-routing-in-rails-3

http://railscasts.com/episodes/231-routing-walkthrough

http://railscasts.com/episodes/232-routing-walkthrough-part-2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...