http://contoh.com/post/54321Kan lebih enak kalo kaya gini :
http://contoh.com/post/cara-url-lebih-humanisJadi lebih terlihat friendly dan enak dilihat. Nah ada plugin slug untuk Active Record Rails namanya FriendlyId. Membantu kita membuat URL cantik sob. Bisa dibaca buat penjelasannya disini FriendlyId Github .
Langkah menerapkannya sama seperti instalasi gem lain.
Di gemfile
gem 'friendly_id', '~> 5.2.4'Lalu eksekusi di terminal (ctrl+alt+t) (saya pake linux) kalo di windows ya di cmd
bundle installmasih di terminal eksekusi ini
rails generate friendly_idDisini saya mau membuat crud dari Post jadi pake generate scaffold agar otomatis dibuatkan MVC nya sekalian.
rails g scaffold post title:string body:text description:text slug:string:uniqJangan lupa kita migrate
rails db:migrate
Lalu buka file app/model/post.rb. Dan tambahkan kode ini
class Post < ApplicationRecord
extend FriendlyId
friendly_id :title, use: :slugged
def should_generate_new_friendly_id?
title_changed?
end
end
dan app/controllers/posts_controller.rb
class PostsController < ApplicationController
private
# Use callbacks to share common setup or constraints between actions.
def set_post
@post = Post.friendly.find(params[:id])
end
app/config/routes.rb
Rails.application.routes.draw do
root to: 'posts#index'
resources :posts
end
lalu kita running server, buka terminal lagi
rails s
Lalu kita buka browser dan kita inputkan post title, body dan description (slug biarkan kosong)
Dan otomatis url sesuai dengan title kita.
Terlihat humanis kan
Bonus :
Ubah title app jadi ada title post sesuai page yang dibuka.
app/views/layouts/application.html.erb
<title><%= yield(:page_title) %> | Post </title>app/views/posts/show.html.erb
<% provide(:page_title, @post.title) %>
Referensi :
0 Komentar