如何使用friendly_id gem设置slug限制?

时间:2015-09-29 19:31:37

标签: ruby-on-rails friendly-id

我使用的是friendly_id(4.0.10.1),这是我的班级:

class Article < ActiveRecord::Base

  extend FriendlyId
  friendly_id :name, use: [:slugged, :history]

end

如何为slug字段设置49个字符的限制? Gem工作得很好,只是我需要设置由gem管理的49限制,而不是在代码上添加额外的步骤。

2 个答案:

答案 0 :(得分:1)

您可以使用Active Record验证。例如,validates_length_of,或者在slug本身上,或者如果值来自列,那么就在列上。

另一个解决方案就在这里

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

我刚刚通过谷歌搜索找到了这些。

https://github.com/norman/friendly_id/issues/190

答案 1 :(得分:0)

这是最好的解决方案

 friendly_id :slug_candidates, use: :slugged

 def slug_candidates
  [
    :name,
    [:name, :city],
    [:name, :street, :city],
    [:name, :street_number, :street, :city]
  ]
 end 

此处更多信息https://www.rubydoc.info/github/norman/friendly_id/FriendlyId/Slugged