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」にはしたくない