ruby - Datamapper,定义自己的对象方法,怎么样?

标签 ruby database datamapper

假设我有一个像下面这样的类

class List
  include DataMapper::Resource
  property :id, Serial  
  property :username, String

  def self.my_username
    return self[:username]
  end
end

list=List.create(:username=>,'jim')
list.my_username

当我运行它时,它告诉我找不到该方法,并且经过更多调查,您只能定义类方法(而不是对象方法)并且类方法无法访问对象数据。

有什么方法可以将这些方法作为对象方法包含在内并访问对象数据吗?我正在使用 Ruby 1.8.6 和最新版本的 datamapper。

最佳答案

避免所有 self 并成为 InstanceMethod :

class List
  include DataMapper::Resource
  property :id, Serial  
  property :username, String

  def my_username
    return self[:username]
  end
end

list=List.create(:username=>'jim')
list.my_username

关于ruby - Datamapper,定义自己的对象方法,怎么样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3061026/

相关文章:

ruby-on-rails - 缺少模板 rails

ruby - rails 3 - I18n::InvalidLocaleData

sql - 通过vertica中的临时表设置变量

MySQL 在更新另一个表后触发 INSERT 到表?

ruby - 使用 sinatra 和 datamapper 进行延迟注册

design-patterns - 数据映射器模式与存储库模式有何不同?

ruby - 在 Ruby (Sinatra) 中循环一年中的几周

ruby - 几个 Ruby 数组的平均值

html - 字符串内的 ruby

php - 在MySQL数据库中指定HTML输入属性?