我正在编写我的第一个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
答案 0 :(得分:6)
在这种情况下,最有可能的是,模型Project
上有一个名为active
的布尔字段。 active?
是ActiveRecord提供的布尔值的快捷方式:它根据该布尔值返回true或false。
作为旁注,裸字段名称的操作方式相同 - 因此project.active
与project.active?
一样,将返回true
或false
。但是大多数返回true
或false
的Ruby方法以问号结尾,因此为方便起见,布尔字段会获得其名称的别名加上问号。