0

我有一个表单,用户可以在其中输入属性 :bytesize 的数字,该属性具有整数数据类型。该数字代表我的对象@catcher 的字节数。

我想有一种方法可以将 :bytesize 的值转换为兆字节。也就是说,我希望能够运行@catcher.mbsize,它将显示该对象的兆字节数。

我对 Rails 很陌生,所以如果这看起来很明显,我很抱歉。

4

2 回答 2

2

转换方法非常简单:

class Catcher
  def mbsize
    self.bytesize / (1 << 20)
  end
end

请记住,属性在内部存储为实例变量,因此attr_accessor :bytesize存储在@bytesize.

于 2013-04-17T21:33:54.317 回答
0

您需要将 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您可以通过方法将其转换为整数

于 2013-04-17T22:42:44.860 回答