【问题标题】:In Rails friendly_id how to use multiple attributes for the slug?在 Rails friendly_id 中,如何为 slug 使用多个属性?
【发布时间】:2014-12-22 10:32:06
【问题描述】:

我需要生成具有多个属性的 slug。例如,我在每条记录中都需要titleid(不仅在具有重复标题的记录中)。所以它看起来像这样:hello-world-8943。我该怎么做?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 friendly-id


    【解决方案1】:

    根据docs,可以定义自己的slug结构如下:

    class MyModel < ActiveRecord::Base
    
      friendly_id :uniqueslug, use: :slugged
    
      def uniqueslug
        "#{title}-#{id}"
      end
    
    end
    

    【讨论】:

    • 效果很好!第一行的编辑:friendly_id :uniqueslug, use: :slugged,使用 slugged
    【解决方案2】:

    放入你的模型

    def to_param
       "#{title.parameterize}-#{id}"
    end
    

    【讨论】:

      【解决方案3】:

      你只需要传递你自己的 slug:

      例如生成一个随机字符串。

        extend FriendlyId
        friendly_id :random_slug, use: [:slugged, :finders]
      
        def random_slug
          self.slug = SecureRandom.hex(5)
        end
      

      【讨论】:

        猜你喜欢
        • 2017-05-05
        • 2015-10-26
        • 1970-01-01
        • 2015-02-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-22
        相关资源
        最近更新 更多