TaskというモデルのRails3.2.8アプリケーションがあります。私のタスクモデルには、「complete_date」という日時プロパティがあります。のビューでcomplete_dateを表示しようとすると。
<%= @task.complete_date.strftime('%b %e, %Y') %>
「nil:NilClassの未定義のメソッド`strftime'」というエラーが表示されます。ただし、complete_dateフィールドはnullではありません。次のクエリ。
mysql> select count(*) from tasks where complete_date is null;
0行を返します。次のコードを使用して、同じビューでcomplete_dateを取得できます...
<% @task.attributes.each_pair do |name, value| %>
<% if name == "complete_date" %>
<%= value.strftime('%b %e, %Y') %>
<% end %>
<% end %>
これは完全に機能するため、問題はドット表記(@ task.complete_date)で属性にアクセスすることだけにあるようです。タスクモデルで、attr_accessibleおよびattr_accessorとして「complete_date」をリストしました。@ task.complete_dateでcomplete_dateフィールドを参照するときに、なぜ常にnilになるのか、何か考えはありますか?ありがとう。