2011-12-21 107 views
0

我有2个模型,我目前正在测试。一个是顶级模型(Account :: User),另一个是关联模型(Account :: Profile)。我在从相关模型中提取数据时遇到了一些困难。从关联模型获取数据

下面的代码是为Rails 3.1

我得到异常:

undefined method profile' for #<Class:0x7fe8aa0674b8>

目前我的模型是这样的:

帐户::用户:

class Account::User < ActiveRecord::Base 

validates_presence_of :username, :first_name, :last_name, :instance_id, :user_type, :is_active 
validates_uniqueness_of :username 

has_one :profile, :class_name=> 'Account::Profile' 

def self.all_by_user_type(user_type) 
    return all :conditions => ["user_type = ?", user_type] 
end 

def self.all_by_user_status(user_status) 
    return all :conditions => ["is_active = ?", user_status] 
end 

def self.all_by_last_login(last_login) 
    return all :conditions => ["last_login between ? and ?", last_login, Date.current] 
end 

def self.all_by_created_by(created_by) 
    return all :conditions => ["created_by = ?", created_by] 
end 
end 

账号::简介

class Account::Profile < ActiveRecord::Base 
    belongs_to :user, :class_name 'Account::User' 
end 

我控制器操作是这样的:

def dashboard 
    @user = Account::User.profile 
end 

回答

1

当你写Account::User.profile,你要访问一个名为profile一个类的方法。现在,has_one(和朋友)实际上建立了关于班级实例的关系,因此您可以使用它,如@user.profile

+0

这很有道理。谢谢Sczizzo。 – Tempname 2011-12-21 21:25:53

1

Account::User.profile不应该工作。你可以这样做:

@user = Account::User.first 
@profile = @user.profile