【问题标题】:Friendly Id Custom Slug友好 ID 自定义蛞蝓
【发布时间】:2016-07-27 04:50:52
【问题描述】:

我有一个 Post 模型

#post.rb   
extend FriendlyId
friendly_id :slug_candidates, use: [:slugged, :history]

我正在尝试像这样自定义每个帖子的网址

#post.rb 
def slug_candidates
 "#tutorial-#{user.display_name}-#{title}"
end

友好的 id 不断生成 UUID slug,而我希望它生成一个全面的 url

通常我会得到 \tutorial-john-49c9938b-ece5-4175-a4a4-0bb2b0f26a27 而不是 \tutorial-john-some-comprehensive-title

谢谢

【问题讨论】:

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


    【解决方案1】:

    明白了。 slug 是在我保存标题之前生成的。因此,它以零标题生成。我不得不重写 should_generate_new_friendly_id 方法

    def should_generate_new_friendly_id?
      slug.blank? || title_changed?
    end
    

    【讨论】:

      【解决方案2】:

      我编辑了回复,抱歉。 似乎friendly_id 需要一系列候选对象。如您所见here

      请试试这个:

      #post.rb 
      def slug_candidates
        [ "#tutorial-#{user.display_name}-#{title}" ]
      end
      

      【讨论】:

      • 用这个进行了测试,但只得到了 \tutorial-john。似乎标题不是由友好的 id 生成的
      猜你喜欢
      • 2019-05-06
      • 1970-01-01
      • 2013-03-24
      • 1970-01-01
      • 2022-11-09
      • 2012-05-17
      • 2016-04-21
      • 2015-01-07
      • 1970-01-01
      相关资源
      最近更新 更多