수색…


소개

FriendlyId는 Active Record 용 슬러 깅 및 퍼머 링크 플러그인의 "Swiss Army Bulldozer"입니다. 예쁜 URL을 만들고 친숙한 문자열을 마치 숫자 ID처럼 작업 할 수 있습니다. FriendlyId를 사용하면 응용 프로그램에서 다음과 같은 URL을 쉽게 사용할 수 있습니다.

http://example.com/states/washington

레일 빠른 시작

rails new my_app
cd my_app

젬 파일

gem 'friendly_id', '~> 5.1.0' # Note: You MUST use 5.0.0 or greater for Rails 4.0+
rails generate friendly_id
rails generate scaffold user name:string slug:string:uniq
rake db:migrate

app / models / user.rb를 편집하십시오.

class User < ApplicationRecord
  extend FriendlyId
  friendly_id :name, use: :slugged
end

User.create! name: "Joe Schmoe"

# Change User.find to User.friendly.find in your controller
User.friendly.find(params[:id])

rails server
GET http://localhost:3000/users/joe-schmoe

# If you're adding FriendlyId to an existing app and need
# to generate slugs for existing users, do this from the
# console, runner, or add a Rake task:
User.find_each(&:save)

Finders are no longer overridden by default. If you want to do friendly finds, you must do Model.friendly.find rather than Model.find. You can however restore FriendlyId 4-style finders by using the :finders addon


friendly_id :foo, use: :slugged # you must do MyClass.friendly.find('bar')
#or...
friendly_id :foo, use: [:slugged, :finders] # you can now do MyClass.find('bar')

시퀀스를 추가하는 대신 레코드를 고유하게 구별하는 데 사용할 수있는 대체 슬러그 목록을 쉽게 설정할 수있는 새로운 "후보"기능. 예 :

class Restaurant < ActiveRecord::Base
  extend FriendlyId
  friendly_id :slug_candidates, use: :slugged

  # Try building a slug based on the following fields in
  # increasing order of specificity.
  def slug_candidates
    [
      :name,
      [:name, :city],
      [:name, :street, :city],
      [:name, :street_number, :street, :city]
    ]
  end
end

friendly_id 보석을 사용하여 슬러그 한계 길이를 설정 하시겠습니까?

def normalize_friendly_id(string)
   super[0..40]
end


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow