2011-09-09 40 views
0

我使用Rails 3.0.10加载ActiveModel为什么没有返回属性值

class Friend 
    attr_accessor :first_name, :last_name, :email 

    extend ActiveModel::Naming 
    include ActiveModel::AttributeMethods 
    define_attribute_methods [:first_name, :last_name, :email] 
    include ActiveModel::Conversion 
    def persisted?; false; end 
end 


> Friend.new(:first_name => 'John').first_name 
=> nil 

什么我需要做检索FIRST_NAME。

+0

我不确定这是不是在Rails 3.0.10中有所不同,但是您的类没有扩展Active Record Base? I.e,'朋友 MrDanA

+0

这就是要点。它适用于桌子支持的模型,但我没有桌子,我正在寻找此功能。 –

+0

我们说的是,从散列中分配属性在ActiveRecord :: Base中。你需要扩展ActiveRecord :: Base,或者自己实现它。 –

回答

0

你不需要初始化器吗?

def initialize(attributes = {}) 
    attributes.each do |name, value| 
     send("#{name}=", value) 
    end 
end 
+0

关于这个主题有一个RailsCast:http://railscasts.com/episodes/219-active-model – christianblais

相关问题