Public speaking course notes Read "Dynamo, Amazon’s Highly Available Key-value Store" Read "Bigtable, A Distributed Storage System for Structured Data" Read "Streaming Systems" 3, Watermarks Read "Streaming Systems" 1&2, Streaming 101 Read "F1, a distributed SQL database that scales" Read "Zanzibar, Google’s Consistent, Global Authorization System" Read "Spanner, Google's Globally-Distributed Database" Read "Designing Data-intensive applications" 12, The Future of Data Systems IOS development with Swift Read "Designing Data-intensive applications" 10&11, Batch and Stream Processing Read "Designing Data-intensive applications" 9, Consistency and Consensus Read "Designing Data-intensive applications" 8, Distributed System Troubles Read "Designing Data-intensive applications" 7, Transactions Read "Designing Data-intensive applications" 6, Partitioning Read "Designing Data-intensive applications" 5, Replication Read "Designing Data-intensive applications" 3&4, Storage, Retrieval, Encoding Read "Designing Data-intensive applications" 1&2, Foundation of Data Systems Three cases of binary search TAMU Operating System 2 Memory Management TAMU Operating System 1 Introduction Overview in cloud computing 2 TAMU Operating System 7 Virtualization TAMU Operating System 6 File System TAMU Operating System 5 I/O and Disk Management TAMU Operating System 4 Synchronization TAMU Operating System 3 Concurrency and Threading TAMU Computer Networks 5 Data Link Layer TAMU Computer Networks 4 Network Layer TAMU Computer Networks 3 Transport Layer TAMU Computer Networks 2 Application Layer TAMU Computer Networks 1 Introduction Overview in distributed systems and cloud computing 1 A well-optimized Union-Find implementation, in Java A heap implementation supporting deletion TAMU Advanced Algorithms 3, Maximum Bandwidth Path (Dijkstra, MST, Linear) TAMU Advanced Algorithms 2, B+ tree and Segment Intersection TAMU Advanced Algorithms 1, BST, 2-3 Tree and Heap TAMU AI, Searching problems Factorization Machine and Field-aware Factorization Machine for CTR prediction TAMU Neural Network 10 Information-Theoretic Models TAMU Neural Network 9 Principal Component Analysis TAMU Neural Network 8 Neurodynamics TAMU Neural Network 7 Self-Organizing Maps TAMU Neural Network 6 Deep Learning Overview TAMU Neural Network 5 Radial-Basis Function Networks TAMU Neural Network 4 Multi-Layer Perceptrons TAMU Neural Network 3 Single-Layer Perceptrons Princeton Algorithms P1W6 Hash Tables & Symbol Table Applications Stanford ML 11 Application Example Photo OCR Stanford ML 10 Large Scale Machine Learning Stanford ML 9 Anomaly Detection and Recommender Systems Stanford ML 8 Clustering & Principal Component Analysis Princeton Algorithms P1W5 Balanced Search Trees TAMU Neural Network 2 Learning Processes TAMU Neural Network 1 Introduction Stanford ML 7 Support Vector Machine Stanford ML 6 Evaluate Algorithms Princeton Algorithms P1W4 Priority Queues and Symbol Tables Stanford ML 5 Neural Networks Learning Princeton Algorithms P1W3 Mergesort and Quicksort Stanford ML 4 Neural Networks Basics Princeton Algorithms P1W2 Stack and Queue, Basic Sorts Stanford ML 3 Classification Problems Stanford ML 2 Multivariate Regression and Normal Equation Princeton Algorithms P1W1 Union and Find Stanford ML 1 Introduction and Parameter Learning

Better url with friendly id

2016-05-09

Change Default URL

Sometimes, we want to change the displayed URL because url like /post/4/edit is not descriptive and then friendly_id come into play! Here is a simple guide for using friendly_id in your rails app.

Add Gem

First thing you need to do is to add friendly_id gem to you Gemfile. Just add gem 'friendly_id', '~> 5.1.0' to your Gemfile and run bundle install and restart your server.

Create Friendly Id Slugs

You need to create a table in your database. It’s pretty easy to do.

If you want to use friendly id for a new resource, say User, run these commands:
```rails generate friendly_id
rails generate scaffold user name:string slug:string:uniq
rake db:migrate


If you want to use friendly id for an existing resource, say Post, run these commands:
```rails generate friendly_id
rails generate migration add_slug_to_posts slug:string:uniq
rake db:migrate

Edit Model

You may need to edit your corresponding model(like User or Post). Change :title in the code to meet your need.

class Post < ActiveRecord::Base
	validates(:title, :content, presence: true)
	extend FriendlyId
	friendly_id :title, use: :slugged
end

Edit Controller

To get things done, you also need to edit you corresponding controller. Use friendly.find instead of find and permit :slug.

class PostsController < ApplicationController
	private

	def post_params
		params.require(:post).permit(:title, :content, :category, :slug)
	end

	def find_post
		@post = Post.friendly.find(params[:id])
	end
end

One More Thing

If you use friendly id for your existing resource, you may also need to run this command in rails console Post.find_each(&:save). Then it should work.

Deploy to Heroku

If your app is deployed at heroku, these commands are also need:
git push heroku master heroku run rake db:migrate heroku run rails c Post.find_each(&:save) exit


Creative Commons License
Melon blog is created by melonskin. This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.
© 2016-2024. All rights reserved by melonskin. Powered by Jekyll.