2017-02-15 30 views
1

我读小时的源代码,并有被称为蛞蝓用于Rails的slug是什么?

https://github.com/DefactoSoftware/Hours/blob/development/app/models/concerns/sluggable.rb

一类,我看到每一个模型具有一个字符串类型,称为蛞蝓的属性?

在这种情况下,slug用于什么?下面

代码是tag模型内部使用的塞之一,

class Tag < ActiveRecord::Base 
    attr_reader :total_hours 
    include Sluggable 

    validates :name, presence: true, 
        uniqueness: { case_sensitive: false } 

    has_many :taggings 
    has_many :hours, through: :taggings 
    has_many :projects, -> { uniq }, through: :hours 
    has_many :users, -> { uniq }, through: :hours 
    belongs_to :project 

    def self.list 
    Tag.order(:name).pluck(:name) 
    end 

    private 

    def slug_source 
    name 
    end 
end 
+1

http://railscasts.com/episodes/314-pretty-urls-with-friendlyid view This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This This – etusm

+1

@李信阳见我最后一次编辑。 – devoh

回答

2

一般情况下,我用它来生成friendly url。如果您愿意,这是您可以在URL中使用的人类可读的ID。我认为这也是SEO友好的。您可以使用这样的:

mysite.com/products/xbox360-fifa-15 

代替

mysite.com/products/123456 

在你的链接,如果塞已经存在,该方法将产生:

​​

性能:别不要忘记在每个使用的弹子柱上创建一个索引。

1

它只是创建用户友好的URL的方式:的

http://example.com/states/washington 

代替:

http://example.com/states/4323454