2

slugを使用した後でも、URLにはタイトルではなくIDが表示されます。次のようにコーディングします

index.html.erb

<title>Blog!</title>
<h1>List of the Posts</h1>
<% @posts.each do |post| %>
  <%= link_to post.title,:id => post.slug%>
  <p><%= post.content %></p>
  <%= link_to "Edit",edit_post_path(post) %> |
  <%= link_to "Delete",post,:confirm=>"Are you sure ?",:method=>:delete %>
  <hr />
<% end %>
<p><%= link_to "Add a New Post",new_post_path %></p>

posts_controller.rb

class PostsController < ApplicationController
  def index
    @posts=Post.all
  end

  def show
    @posts=Post.find(params[:id])
  end

終わり

ポストモデル

  extend FriendlyId
  friendly_id :title,use: :slugged

  def should_generate_new_friendly_id?
    new_record
  end

ルート.rb

Blog::Application.routes.draw do
  get "blog/posts"
  resources :posts
end

リンクを「 localhost:8080 / posts / this + is + the + title」にし、「localhost:8080 / posts/2」にはしたくない

4

1 に答える 1