Я создаю доску обсуждений в Rails 3, но у меня возникают трудности с форматированием URL.
Мне бы хотелось, чтобы слаг категории появился после / Discussions / такесли бы у меня была категория «пиво» и обсуждение под названием «бруклинский лагер», мои URL отображались бы как:
/discussions/beer
и
/discussions/beer/brooklyn-lager
Мои модели определены как:
class Discussion
belongs_to :category
class Category
has_many :discussions
У меня это работает в данный момент, но только путем захвата: index и: show маршруты ресурса обсуждений и использования этого:
resources :discussions, :except => [:show]
get "/discussions/:category" => "discussions#index", :as => :discussions_via_category
get "/discussions/:category/:id" => "discussions#show", :as => :discussion_via_category
и в index и showдействия контроллера обсуждений с использованием параметра категории для фильтрации результатов.
Это также требует от меня определения функции to_url в модели обсуждения, которая возвращает путь, включающий слаг категории.
Это действительно правильный способ сделать это?Это немного портит мне спокойствие, так как я заменяю функцию по умолчанию: show action ..