Я не хочу делать перенаправление чувак! Я просто хочу, чтобы приложение понимало мой слаг и загружало соответствующую модель. как в facebook.com и quora.com
ользую Rails 3. И мне интересно, как передать параметры в некоторые блоки вroutes.rb
.
Что я пытаюсь сделать, это сделатьcatch all
маршрут, этот чек отslugs
база данных название модели по идентификатору.
После полученияmodel name
Я приумножаю его, чтобы получить имя контроллера.
match '/:id', :controller => proc { Slug.find_by_iid(params[:id]).model.pluralize }, :action => :show
Таблицаslugs
model iid
----- -----
post 4d2c7de0c5abe7f8a9000007
item 4d2c7de0c5abe7f809000004
Когда я пытаюсь получить доступ к некоторым страницам, как/4d2c7de0c5abe7f8a9000007
Я получил эту ошибку:
Started GET "/4d2c7de0c5abe7f8a9000007" for
127.0.0.1 at 2011-01-12 00:04:31 +0200
ActionController::RoutingError (wrong constant name #<Proc:0x0000010337c310@):
Rendered /Users/amr/.rvm/gems/ruby-1.9.2-p136@rails3/gems/actionpack-3.0.3/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (1.2ms)
Ожидается, что он будет указывать на сообщения # view с iid: 4d2c7de0c5abe7f8a9000007