Rails:从模型方法访问字段值

8

我刚开始学习Rails (3)。我正在极力寻找如何做一些看似微不足道的事情,即从模型实例的方法中访问模型实例字段的值。

在我的情况下:

def formal_name
  @title + " " + @forename + " " + @surname
end

所有三个@属性(它们都是数据库表中的字段)均返回nil。这不应该发生。

令人难以置信的是,如何访问字段在http://guides.rails.info/中没有讨论,而谷歌也没有任何结果。

顺便说一下,我来自Django,那里这些东西很明显。

3个回答

10

@语法用于实例变量,例如在控制器中填充并在视图中使用。这与你在这里所做的不同。

你实际上只需要

def formal_name
  title + " " + forename + " " + surname
end

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

1
为什么这里是 self.fieldname,而另一个答案中只有 fieldnameself 只是让你更具体地指定作用域吗?例如,如果您在方法中声明与字段相同名称的局部变量? - Adam Fraser

0

你必须省略 @ 符号,通过 getter 方法访问它们。在某些情况下,由于歧义,你必须使用 self.<field>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接