使用 friendly_id 为具有可标记行为的标签创建 URL slug
Posted
技术标签:
【中文标题】使用 friendly_id 为具有可标记行为的标签创建 URL slug【英文标题】:Creating URL slugs for tags with acts-as-taggable-on using friendly_id 【发布时间】:2012-04-30 09:05:03 【问题描述】:我正在尝试遵循这个问题的答案,以便为标签创建 url 友好的 slug:
Creating url slugs for tags with acts_as_taggable_on
在初始化器中我有:
ActsAsTaggableOn::Tag.class_eval do
extend FriendlyId
friendly_id :name, use: :slugged
end
我得到的错误是:
undefined method `slug' for #<ActsAsTaggableOn::Tag id: nil, name: "test listing">
感谢您的帮助!
【问题讨论】:
那篇文章使用的是旧的 gem,而您使用的是 FriendlyId 4.x,它需要您的 Tag 模型上的字符串类型为slug
列。 ..我会尽快发布一些代码(目前正在上班)
【参考方案1】:
使用我在参考帖子中读到的内容,我有一个潜在的解决方案
运行rails g migration AddSlugToTags slug:string
这应该会生成以下迁移:
class AddSlugToTags < ActiveRecord::Migration
def change
add_column :tags, :slug, :string
end
end
当然,运行 rake db:migrate
进行设置。
那么你上面的初始化代码应该可以工作了。
注意:我自己没有尝试过,但它会起作用是有道理的。
希望这会有所帮助。
【讨论】:
以上是关于使用 friendly_id 为具有可标记行为的标签创建 URL slug的主要内容,如果未能解决你的问题,请参考以下文章
Rails:Friendly_id 不会为旧记录生成 slug
rails,friendly_id,设计用户名不显示 slug