刚开始学习Rails(3)。我正在试图找出如何做一些可能完全无关紧要的事情:从模型中的方法内部访问模型实例的字段的值。
就我而言:
def formal_name
@title + " " + @forename + " " + @surname
end
所有三个@properties(数据库中表中的所有字段)都返回nil
。他们不应该。
令人难以置信的是,http://guides.rails.info/没有讨论如何访问字段,谷歌也没有提及。
顺便说一句,我来自Django,这个东西很明显。答案 0 :(得分:10)
@语法用于实例变量(例如)在控制器中填充,然后在视图中使用。不是你在这里做的。
你实际上只需要
def formal_name
title + " " + forename + " " + surname
end
答案 1 :(得分:0)
你必须省略@,你可以通过getter方法访问它们。在某些情况下,由于含糊不清,您必须使用self.<field>
。
答案 2 :(得分:0)
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