Вопрос: Рельсы 3 Маршрутизация


У меня есть модель community_users, которую я маршрутизирую следующим образом:

resources :communities do
  resources :users
end

Это создает маршрут /communities/:id/users/,

Я хотел бы настроить этот маршрут так, чтобы отображалось только имя сообщества с соответствующим: id.

Другими словами, если у сообщества есть идентификатор «1» и имя «рельсовые любовники», маршрут будет читать:

/rails-lovers

и не:

/communities/1/users/

3


источник


Ответы:


Возможно, вы захотите проверить драгоценный камень friendly_id

Это даст вам чистые URL-адреса, которые вы ищете.


3



Я не совсем уверен, что это то, что вы ищете, но:

Один из вариантов - создать маршрут

match ':community_name' => 'users#show_users_for_community'

а затем в UserController есть

def show_users_for_community
  @community = Community.find_by_name(params[:community_name])
  <do what you need to do here>
end

Я не уверен, будет ли этот маршрут соответствовать слишком большому количеству URL-адресов или нет - это очень общий маршрут. Поэтому, если вы это сделаете, возможно, поместите его в файл маршрутов.


3