【发布时间】:2021-02-05 16:44:57
【问题描述】:
我知道有一些宝石可以让你开箱即用。不过,我认为做类似的事情是一种很好的学习方式。
由于我在多个模型中使用 slug,我决定创建一个模块并通过 ActiveSupport::Concern 包含它。
这是我的模块sluggable.rb:
module Sluggable
extend ActiveSupport::Concern
module ClassMethods
def slug(*atts_to_slug)
after_validation set_slug(atts_to_slug)
end
def set_slug(atts)
slug_string = atts.map{|f| f.parameterize}.join("-")
# Then I would think I can do something like:
# model_instance.send("slug", slug_string)
end
end
end
那我想在模型中做这样的事情:
class Classification < ApplicationRecord
include Sluggable
slug :name, :street
end
我发现的问题是:
如何在模块中设置模型的属性slug?
【问题讨论】:
标签: ruby-on-rails ruby