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?を返します。ただし、ほとんどのRubyメソッドは疑問符で返されるか終了するため、ブールフィールドには、便宜上、名前のエイリアスと疑問符が付けられます。truefalsetruefalse

于 2012-07-04T20:35:31.493 に答える