вопрос о моем вспомогательном методе, использующем себя - PullRequest
1 голос
/ 02 февраля 2011

Я создал этот вспомогательный метод. На мой взгляд, я называю это с days_left(duedate). Мне не очень нравится мой помощник. Можно ли использовать его с self. Поскольку я действительно не знаю, как себя используют. Это так же, как this в Java или JavaScript? С каким объектом это связано? Не стесняйтесь настраивать этот метод. Спасибо за ваше время!

def days_left(duedate)
  (if duedate.date == Date.today
    "Today"
  elsif duedate.date-Date.today < 1
    "expired"
  elsif duedate.date-Date.today == 1
    "Tomorrow"
  else
    "#{(duedate.date-Date.today).to_i}"
  end).to_s.html_safe
end

1 Ответ

1 голос
/ 02 февраля 2011

Вы можете попробовать перенести этот метод в модель.

Это будет похоже на добавление метода 'full_name' к модели с атрибутами 'first_name' и 'last_name.'Вы не будете хранить 'full_name' отдельно в вашей базе данных, потому что это приведет к избыточным денормализованным данным.

Например:

class Employee < ActiveRecord::Base
    def full_name
        "#{first_name} #{last_name}"
    end
end

Таким образом, вы можете аналогичным образом добавить 'days_left'метод к вашей модели, который подходит там, потому что он добавляет более дружественную версию существующего атрибута данных.

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