konchanxxx / menta

MENTAのタスク管理用リポジトリ
0 stars 0 forks source link

URLにshowページのカラム名を加えたい #38

Closed sumura80 closed 5 years ago

sumura80 commented 5 years ago

概要

URLにshowページのカラム名を加えたいと思っております。

実現したいこと

現在作成しているアプリで、URLを見ると /コントローラー名/showの番号 となっております。 これだと、どの記事を見ているかわからないので、 /コントローラー名/showの番号/そのモデルのタイトルカラムにURLを変更をしたいと思いました。

例えば下記の薬のサイトを作る例です。 (Before:このままだとなんの記事かわからない) http://localhost:3000/posts/1 http://localhost:3000/posts/2

(After:風邪薬の記事だとわかるようにしたい) http://localhost:3000/posts/1/medicine http://localhost:3000/posts/2/drink

postは下記のような感じだと想定しています。(まだ実装はしておりません) /app/posts/_form.html.erb

<%= form_for(@post, html: {multipart: true}) do |form| %>
<div class="row">
  <div class="col-md-6">
    <div class="form-group">
      <%= form.label :title %>
      <%= form.text_field :title,class: "form-control" %>
    </div>
  </div>
  <div class="col-md-6">
    <div class="form-group">
      <%= form.label :content %>
      <%= form.text_area :content,class: "form-control" %>
    </div> 
  </div>
 </div>
<% end %>

困っていること

下記のサイトのようにやればうまくいくのかなと思ったのですが、このようにURLに手をくわえる手法は実務ではよくあることなのでしょうか?またどのpostかわかるように、番号を残してそのあとにどの記事かをわかるように(記事のカラム名:title)追加するのがいいのかなと思いました。 https://qiita.com/tonishi/items/40202bb500e35364e1c0

もし、エラーを招きやすくなったり、実務では好まれていないようでしたらやめようと思っております。また注意点などもありますでしょうか? ご助言いただければと思います。宜しくお願いいたします。

konchanxxx commented 5 years ago

これとかですかね? https://qiita.com/awakia/items/c2c790dc51e5b084af10

下記のサイトのようにやればうまくいくのかなと思ったのですが、このようにURLに手をくわえる手法は実務ではよくあることなのでしょうか?

よくあるかは別にして要件としてあると思いますよ。GitHubのマイページとかQiitaのマイページとかもそうなってると思います:bow:

またどのpostかわかるように、番号を残してそのあとにどの記事かをわかるように(記事のカラム名:title)追加するのがいいのかなと思いました。

番号?はDBで発行されるIDがあるのでそのIDで一意に特定できるから不要かと思いました。 titile記事タイトルでアクセスできるようにするならユニーク制約を追加した方が良いと思いますmm

sumura80 commented 5 years ago

@rexitorg ありがとうございました。 難易度やSEOも考慮し、少し検討してみたいと思います。

大変助かりました。 こちらクローズさせて頂きます。:bow: