Внешняя таблица не имеет сгенерированных методов - PullRequest
0 голосов
/ 11 июля 2011

У меня есть пользовательская таблица, которая имеет набор атрибутов, которые я могу вызвать с помощью метода (это было сгенерировано devise):

user.name

Однако я создал другую таблицу, как пользователь has_one server.Они связаны магией внешнего ключа рельсов.Я хочу иметь возможность вызывать методы, как я делаю с пользовательской таблицей, используя методы, но она всегда выдает эту ошибку при попытке вызвать user.server.created_at

NoMethodError: undefined method `created_at' for #<ActiveRecord::Relation:0x000001036e5a38>

Затем я попытался сделать это:

user.server[:created_at]

И это вызвало эту ошибку:

Typerror: can't convert Symbol into Integer

Я слышал, что attr_accessor может быть подходящим для создания методов, но я не совсем уверен, с чего начать использовать его с Rails,и если это даже было бы хорошей идеей.

РЕДАКТИРОВАТЬ:

Я пытаюсь в конечном итоге что-то вроде этого:

time_left = (Time.now.to_i - current_server[:created_at].to_i)

За исключением правильного синтаксиса.Created_at существует и пишется с правильным временем.

Модель пользователя:

devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  has_one :server

  # Setup accessible (or protected) attributes for your model
  attr_accessible :name, :email, :password, :password_confirmation, :remember_me

Модель сервера:

class Server < ActiveRecord::Base
  belongs_to :user
end

Спасибо!

1 Ответ

1 голос
/ 11 июля 2011

Существует ли столбец созданный_кат на самом деле в таблице с именем серверы?

Второй синтаксис просто неверенЯ не знаю, почему это выдает такую ​​ошибку, но я не ожидаю, что она все равно будет работать.

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