Еще один вопрос от новичка в рельсах. Я использую гем friendly_id с mysql в rails 3.x
Это проблема дизайна (может быть легко в рельсах). Жду советов от специалистов по рельсам. Я создаю приложение для списка библиотек. Где пользователь может просматривать библиотеку по «агломерации» или по «городу». Например:
Я хочу иметь такие URL-адреса, как:
www.list.com/library/san-francisco-bay-area
or
www.list.com/library/san-francisco-bay-area/palo-alto/
В базе данных у меня есть таблицы:
library
-------
id, name, city_id, slug
здесь указано имя, а city_id - FK
city
----
city_id, name, metro_area_id, slug
здесь указано имя, а metro_area_id - FK
metro_area
----------
metro_area_id, name, state, slug
здесь залито имя
Поэтому, когда пользователь указывает браузеру на www.list.com/library/san-francisco-bay-area/palo-alto
Я хочу получить список библиотек в области залива Сан-Франциско/Пало-Альто. Но моя модель библиотечной таблицы содержит слаг только для имени библиотеки. Итак, как можно проанализировать этот URL-адрес, чтобы найти city_id, который можно использовать в модели библиотеки и контроллере для получения списка.
Пожалуйста, помните, я не могу полагаться только на название города. Мне нужно было бы найти city_id «пало-альто», который находится в метро «san-francisco-bay-area». Так как slug для metro_area и city находится в других таблицах, как лучше спроектировать модель и контроллер.
Показать метод контроллера:
def show
@user = Library.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @library }
end
end
и модель
class Library < ActiveRecord::Base
attr_accessible :name, :city_id, :slug
extend FriendlyId
friendly_id :name, use: :slugged
end
Это не будет работать в соответствии с моим требованием к дружественному URL. Так что буду признателен за советы знатоков :)