我有一个表单,用户可以在其中输入属性 :bytesize 的数字,该属性具有整数数据类型。该数字代表我的对象@catcher 的字节数。
我想有一种方法可以将 :bytesize 的值转换为兆字节。也就是说,我希望能够运行@catcher.mbsize,它将显示该对象的兆字节数。
我对 Rails 很陌生,所以如果这看起来很明显,我很抱歉。
我有一个表单,用户可以在其中输入属性 :bytesize 的数字,该属性具有整数数据类型。该数字代表我的对象@catcher 的字节数。
我想有一种方法可以将 :bytesize 的值转换为兆字节。也就是说,我希望能够运行@catcher.mbsize,它将显示该对象的兆字节数。
我对 Rails 很陌生,所以如果这看起来很明显,我很抱歉。
转换方法非常简单:
class Catcher
def mbsize
self.bytesize / (1 << 20)
end
end
请记住,属性在内部存储为实例变量,因此attr_accessor :bytesize
存储在@bytesize
.
您需要将 mbsize 列添加到您的数据库。
在控制器中:
def create
#other code
def mbsize
@bytesize / (1 << 20)
end
@catcher.mbsize=mbsize
@cather.save
end
编辑:
如果您不需要相关的数据库记录,您可以简单地在 Catcher 模型中定义此方法:
def mbsize
bytesize=self.bytesize
mbsize=#your method of converting
end
由于某种原因,您的字节大小很刺痛。.to_i
您可以通过方法将其转换为整数