Как мне создать собственный путь к ресурсу в рельсах? - PullRequest
2 голосов
/ 04 февраля 2010

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

map.resources :users

Здесь мои пользовательские страницы живут по адресу / users / 1 и т. Д.

Я бы хотел, чтобы мои пользовательские страницы жили в / users / blake и т. Д.

Как правильно сделать это в рельсах, чтобы я мог сказать link_to (@user) и генерировать правильный путь?

1 Ответ

2 голосов
/ 04 февраля 2010

В модели:

class User < ActiveRecord::Base
  def to_param
    login
  end
end

В контроллере:

class UsersController < ApplicationController
  def show
    @user = User.find_by_login(params[:id])
    #...
  end
end

to_param в модели используется ActionPack для создания URL для этого объекта. А в контроллере вам нужно выбрать вашу модель по этому полю.

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