Rails: доступ к значению поля из метода модели
только начал изучать Rails (3). Я рву свои волосы, пытаясь найти, как сделать что-то предположительно совершенно тривиальное: получить доступ к значению поля экземпляра модели изнутри метода на этой модели.
в моем случае:
def formal_name
@title + " " + @forename + " " + @surname
end
все три свойства @(которые являются всеми полями таблицы в базе данных) возвращают nil
. Они не должны.
невероятно, как получить доступ к полям не обсуждается в http://guides.rails.info/, и google ничего не находит.
кстати, я еду из Джанго, где это очевидно.
3 ответов
синтаксис @ используется, например, для переменных, которые (например) заполняются в контроллерах, а затем используются в представлениях. Не то, что ты здесь делаешь.
вам на самом деле просто нужно
def formal_name
title + " " + forename + " " + surname
end
вы должны опустить@, вы получаете к ним доступ с помощью методов getter. В некоторых случаях необходимо использовать self.<field>
из-за двусмысленности.
class MyModel << ActiveRecord
def formal_name
title = self.title # return title attribute of instance
forename = self.forename
surename = self.surname
# or something like this
self.title + self.surename
end
end