Ruby on Rails:ユーザーフレンドリーなURL

この記事では、Railsプロジェクトで美しいリンクを作成する方法の例を示します。 /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

おわりに

もちろん、実際のプロジェクトのコードは異なり、ヘルパーになり、はるかに便利な形式で呼び出されます。 そのようなソリューションはどこでも適切ではなく、状況によっては非常に不便です。 ここでは、キリル文字を使用する可能性も考慮されていません。

Source: https://habr.com/ru/post/J133627/


All Articles