來自rails新手的另一個問題。我在rails 3.x中使用了mysql的friendly_id gem用於友好URL的導軌模型和控制器設計
這是一個設計問題(在rails中可能很容易)。我期待來自專家的建議。我正在構建一個庫列表應用程序。用戶可以通過「城市區域」或「城市」查看圖書館。例如:
我希望有像URL:
www.list.com/library/san-francisco-bay-area
或
www.list.com/library/ SAN的舊金山灣區域/帕洛 - 阿爾託/
在數據庫中,我有表:
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
我希望獲得san-francisco-bay-area/palo-alto的圖書館清單。但是我的圖書館表模型僅包含圖書館名稱的slu g。那麼如何解析這個URL來找到可以在庫模型和控制器中用來獲取列表的city_id。
請記住,我不能只依賴城市的名字。我將不得不找到'palo-alto'的city_id,其中位於地鐵'san-francisco-bay-area'。由於metro_area和city的slug位於其他表格中,因此設計模型和控制器的最佳方式是什麼。
控制器的顯示方法是:
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要求將無法正常工作。所以我會感謝專家的建議:)