/posts/1/
という形式のリンクは
/posts/1-article-name/
変換されます
/posts/1-article-name/
準備する
まず、コンソールで
gem install rails -v=3.1.3
を実行して、最新バージョンのレールを配置しましょう。
ジャムのインストールプロセスが完了したら、
rails new nice_urls
を使用して新しいプロジェクトを作成します。 その結果、プロジェクト生成の最後にbundlerが自動的に起動されたため、すべてのジャムがインストールされた新しいクリーンなプロジェクトができました。
投稿の作成
デモンストレーションのために、通常の足場を使用します。 タイトルとテキストを持つ記事に対して生成してみましょう:
rails g scaffold Post title:string text:text
データベースを変更するには、
rake db:migrate
コマンドを使用して移行を実行します。 これで、サーバー(
rails s
コマンド)を起動して、
localhost:3000/posts
ものを見ることができます
localhost:3000/posts
投稿を追加するための使い慣れたインターフェイスが表示されます。

美しいリンク
app/views/posts/index.html.erb
に移動して、
show
するリンクを形成する行を見つけます。
<%= link_to 'Show', post %>
ここで、
post
はパスを形成するために使用されるオブジェクトです。 次の設計に置き換える必要があります。
post_path(:id => "#{post.id}-#{post.title.parameterize}")
show
アクションへのリンクの形成をテストするには、名前を持つ記事を少なくとも1つ追加する必要があります。 インターフェースを使用して投稿を作成し、「素敵なURLのテスト」と呼びましょう。 リストに投稿を作成した後、リンクは
/posts/1
にはならず、
/posts/1-the-test-of-nice-urls
つながるはず
/posts/1-the-test-of-nice-urls
おわりに
もちろん、実際のプロジェクトのコードは異なり、ヘルパーになり、はるかに便利な形式で呼び出されます。 そのようなソリューションはどこでも適切ではなく、状況によっては非常に不便です。 ここでは、キリル文字を使用する可能性も考慮されていません。