“.active?”的含义

时间:2012-07-04 20:31:25

标签: ruby-on-rails

我正在编写我的第一个Rails应用程序,并且我对我在某些documentation中看到的方法调用感到困惑。在下面的代码段中,对project.active?的调用是做什么的?

<%= form_for @person do |person_form| %>
  ...
  <% @person.projects.each do |project| %>
    <% if project.active? %>
      <%= person_form.fields_for :projects, project do |project_fields| %>
        Name: <%= project_fields.text_field :name %>
      <% end %>
    <% end %>
  <% end %>
  ...
<% end %>

我试过寻找.active?的源代码,但我找不到它......我搜索了ActiveRecord::Base,我认为它是project的超类,但它不在那里。我不知道在哪里可以看。

有谁知道.active?方法的作用,以及我可以在哪里找到文档?

谢谢,

d

1 个答案:

答案 0 :(得分:6)

在这种情况下,最有可能的是,模型Project上有一个名为active的布尔字段。 active?是ActiveRecord提供的布尔值的快捷方式:它根据该布尔值返回true或false。

作为旁注,裸字段名称的操作方式相同 - 因此project.activeproject.active?一样,将返回truefalse。但是大多数返回truefalse的Ruby方法以问号结尾,因此为方便起见,布尔字段会获得其名称的别名加上问号。