2

我正在编写我的第一个 Rails 应用程序,但我对在一些文档中看到的方法调用感到困惑。在下面的代码段中,调用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.

4

1 回答 1

6

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

附带说明一下,裸字段名称的操作方式相同——因此project.active,就像project.active?, 将返回trueor falsetrue但是大多数返回或false以问号结尾的Ruby 方法,所以为了方便起见,布尔字段获取其名称的别名加上问号。

于 2012-07-04T20:35:31.493 回答