, freindly_id, , - , .
, , slugs .
Sluggable_type sluggable_id, slug permalink/slug.
+---------------------------------------------+
| sluggable_type | sluggable_id | slug |
| user | 13 | users/john |
+---------------------------------------------+
, , , .
routes.rb
get "/*segments",
:controller => 'slugs',
:action => 'dynamicroute'
SlugsController
def dynamicroute
segments = params[:segments]
slugs.find_by_slug(segments)
slug.sluggable_type.constantize.find(slug.sluggable_id)
end
routes.rb
begin
Slug.all.each do |s|
begin
get "#{s.slug}" => "#{s.sluggable_type.demodulize.pluralize.camelize}#show"
rescue
end
end
rescue
end
, ,
YOUR_APP_NAME::Application.reload_routes!
, .
, .