【发布时间】:2015-11-16 15:58:36
【问题描述】:
我有这个在models/concerns/sluggable.rb:
module Sluggable
extend ActiveSupport::Concern
module ClassMethods
def sluggify(str, type)
# ...
end
end
end
我已将其包含在models/slug.rb:
class Slug < ActiveRecord::Base
include Sluggable
# ...
before_save :create_slug
private
def create_slug
self.slug = Slug.sluggify(self.title, 'item')
end
end
我的印象是模块中的sluggify 方法现在应该可以作为Slug 的类方法使用,但似乎并非如此。尝试将模型插入数据库时出现undefined method: sluggify 错误。
Sluggable 模块可从 Rails 控制台获得。我可以确认我的代码是正确的:
module Sluggable
def sluggify(str, type)
# ...
end
end
class SluggableTest
extend Sluggable
end
slug = SluggableTest.sluggify('string to sluggify', 'item')
那么为什么我不能让它在模型中作为一个关注点工作呢?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4