Получение данных из связанных моделей - PullRequest
0 голосов
/ 22 декабря 2011

У меня есть 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

Ответы [ 2 ]

1 голос
/ 22 декабря 2011

Account::User.profile не должен работать.Вы могли бы сделать что-то вроде этого:

@user = Account::User.first
@profile = @user.profile
1 голос
/ 22 декабря 2011

Когда вы пишете Account::User.profile, вы пытаетесь получить доступ к методу класса с именем profile. Теперь has_one (и друзья) фактически устанавливают отношения для экземпляров класса, поэтому вы можете использовать их как @user.profile.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...