tobiyoshi回答ポイント なしウォッチ 2

ryby on rails(rails3)での質問です。

私自身の (rubyあるいはrails)言語の知識不足からの疑問点だと思っていますが
次の部分がどうしても理解できません。

書名(epubあるいはpdf):黒田努著「はじめる! Rails3 (1) 1.0.1」
頁  : 281頁(epub), 76頁(pdf)


<%= link_to "修正", [:edit, task ] %>
<%= if task.done?
link_to("戻す", [:restart, task ], :method => :put)
else
link_to("完了", [:finish, task ], :method => :put)
end %>


の task.done? 箇所です。実行は問題無いのですが、なぜ task.done? の
記述が可能かということです。taskはDBモデルのオブジェクトです。
doneはbooleanタイプのフィールドです。
task.done は TrueClassかFalseClass
です。でもこのTrueClass,FalseClassのメソッドの中には ? は
含まれていません。ちなみにtask.doneを True あるいは falseに
変更すると(true?あるいは(true)?)実行不可でエラーが返されます。
ヘルパーメソッドの中にはなにか特別なメソッドがあるかヘルパーを
作って調べてもみましたがクエッションマーク(?)のメソッドは
ありません。尚、task.nameでも(nameはvarchar(255))でも実行可能です。
どなたか説明していただけないでしょうか?

ログインして回答する

ベストアンサー

その他の回答

この質問へのコメント

この質問への反応(ブックマークコメント)

質問の情報

登録日時
2011-08-07 22:49:28
終了日時
2011-08-08 09:35:41
回答条件
1人5回まで

この質問のカテゴリ

この質問に含まれるキーワード

ePub21Ruby760Rails217PDF1176メソッド515オブジェクト658ヘルパー68dB1997

人気の質問

メニュー

PC版