我有一个Rails应用程序,其中有几个具有相同结构的模型:
class Item1 < ActiveRecord::Base
WIDTH = 100
HEIGHT = 100
has_attached_file :image, styles: {original: "#{WIDTH}x#{HEIGHT}"}
validates_attachment :image, :presence => true
end
class Item2 < ActiveRecord::Base
WIDTH = 200
HEIGHT = 200
has_attached_file :image, styles: {original: "#{WIDTH}x#{HEIGHT}"}
validates_attachment :image, :presence => true
end
Run Code Online (Sandbox Code Playgroud)
实际的代码更复杂,但这足以简化.
我想我可以将代码的公共部分放在一个地方,然后在所有模型中使用它.
以下是我的想法:
class Item1 < ActiveRecord::Base
WIDTH = 100
HEIGHT = 100
extend CommonItem
end
module CommonItem
has_attached_file :image, styles: {original: "#{WIDTH}x#{HEIGHT}"}
validates_attachment :image, :presence => true
end
Run Code Online (Sandbox Code Playgroud)
显然它不起作用有两个原因:
CommonItem 我不知道我调用的类方法.WIDTH并且HEIGHT查找常量CommonItem …