2014-02-20 2 views
0

У меня есть приложение Rails, которое является многопользовательским. В записи Tenant я сохраняю коды, которые относятся к этому Арендатору.Определение модели Rails с использованием соответствующего поля

Следующая работает хорошо (PS - сфера не работает):

class Worequest < ActiveRecord::Base 
    acts_as_tenant(:tenant) 

    def self.closed 
    where("statuscode_id = ?", ActsAsTenant.current_tenant.request_closed) 
    end 

Что мне действительно нужно, это не worequest.statuscode_id, но вместо этого worequest.statuscode.position.

Я попытался это:

def self.closed 
    self.statuscode.position = ActsAsTenant.current_tenant.request_closed 
end 

Но, что дает эту ошибку:

undefined method `statuscode' 

Спасибо за помощь!

ответ

0

Ваш метод является class method. Это означает, что ваш код относится к классу через объект self.

def self.closed 
    self.statuscode.position = ActsAsTenant.current_tenant.request_closed 
end 

self здесь class Worequest и он не имеет атрибут statuscode.

Что вы пытаетесь с помощью self.statuscode.position = ActsAsTenant.current_tenant.request_closed?

+0

Поле положения кода состояния обозначает последовательность действий процесса запроса. Например, 1 = новый, 2 = открытый, 3 = заданный заданный, 4 = работа выполнена, 5 = архивировано. Когда новый код состояния добавляется, он получает более высокий идентификатор, но приложение позволяет сортировать коды состояния. Таким образом, новый может затем стать 3 = ждать одобрения, а ток 3 становится 4 вниз по линии. – Reddirt

+0

Запись арендатора указывает, какой код состояния закрыт. Поэтому любой код состояния <, чем тот, который откроется. – Reddirt

Смежные вопросы