Rails アプリケーションでわかりやすい URL を使用するにはどうすればよいですか? 必要なのは、次の URL 形式を利用できるようにすることだけです
mysite.com/company1 mysite.com/user123 mysite.com/user1234 mysite.com/newton.garcia mysite.com/company-name
誰でも助けることができますか?
Rails アプリケーションでわかりやすい URL を使用するにはどうすればよいですか? 必要なのは、次の URL 形式を利用できるようにすることだけです
mysite.com/company1 mysite.com/user123 mysite.com/user1234 mysite.com/newton.garcia mysite.com/company-name
誰でも助けることができますか?
すでにQuoraでこの質問をしています..
http://www.quora.com/How-does-Quora-rewrite-their-urls
Quora/Facebook の URL の実装に本当に興味がある人向け。Rails3 のヒントは次のとおりです。
というテーブルを作成しますslugs
。
# slug | model_id | model
# ===========================
# simple data:
# one | 2222 | post
# two | 1111 | user
# six | 5432 | comment
次に、routes.rb の一番下に次の行を追加します。
match '/:id', :to => proc { |env|
id = env["action_dispatch.request.path_parameters"][:id]
model = Slug.find_by_slug(id).model
controller = [model.pluralize.camelize,"Controller"].join.constantize
controller.action("show").call(env)
}, :as => :slugable
したがって、/one
ルートに移動すると、次のように変換されます。
id: one
so from the slugs table,
model: post
and the route will point to "posts#show"
すべてのコントローラーでshow
アクション中
@something = Model.find_by_slug(params[:id])
これには、 SubDomain-Fuという gem を使用できます。詳細については、このスクリーン キャストをご覧ください。