我正在编写我的第一个 RoR 应用程序,目前我正在努力允许用户上传图像。我为此目的使用回形针。其中一个步骤涉及添加has_attached_file
到我的模型中:
class MyModel < ActiveRecord::Base
#...
has_attached_file :picture, styles: {
large: "120x150#>",
small: "60x75#>"
}
#...
end
如果我这样做,一切都会顺利进行(或者看起来如此)。但我还需要在其他地方访问与整数相同的常量值,所以我添加了一个哈希:
class MyModel < ActiveRecord::Base
#...
has_attached_file :picture, styles: {
large: "120x150#>",
small: "60x75#>"
}
def picture_sizes
{
large: {width: 120, height: 150},
small: {width: 60, height: 75}
}
end
#...
end
这造成了丑陋的冗余。所以我想写一个从第二个哈希生成第一个哈希的方法,像这样
class MyModel < ActiveRecord::Base
#...
has_attached_file :picture, styles: picture_sizes_as_strings
def picture_sizes
{
large: {width: 120, height: 150},
small: {width: 60, height: 75}
}
end
def picture_sizes_as_strings
result = {}
picture_sizes.each do |label, size|
result[:label] = "#{size[:width]}x#{size[:height]}#>"
end
return result
end
#...
end
但这会引发一个错误:
undefined local variable or method `picture_sizes_as_strings' for #<Class:0x007fdf504d3870>
我究竟做错了什么?