0

私のコードの行は次のとおりです。

validates :price, :numericality => {:greater_than_or_equal_to => 0.01}

:price私が定義した唯一のシンボルです。どちらも比較の意味があります:numericality:greater_than_or_equal_to

  1. これらのものは何と呼ばれますか?
  2. それらに関するドキュメントはどこにありますか? ランダムなことをするこれらのシンボルがたくさんあるようです。これらはインスタンスメソッドですか?それらのリストはどこにありますか?
4

2 に答える 2

1

シンボルは文字列のようなものです。これらは、メソッド呼び出しのように見える構造で使用されることがありますが、メソッドではありません。

あなたの場合、メソッドvalidatesはシンボルとハッシュの 2 つのパラメーターを受け入れます。ハッシュの単なるキーであり、それ以上のものではありません:numericality:greater_than_or_equal_toそれらをどうするvalidatesか、誰も知りません(validatesそれ自体を除く)。そのため、調べるには、ドキュメントvalidates(および関連する Rails ガイドなど) を読む必要があります。

于 2013-04-04T07:22:17.727 に答える
0

ここの Web ページhttp://guides.rubyonrails.org/active_record_validations_callbacks.htmlには、利用可能な検証が表示されます。

参照するシンボル自体には「意味」はありませんが、変数として渡されたときに何をすべきかをメソッドに伝えます。

Validates は単なるメソッド呼び出しですが、Ruby では括弧はオプションであり、入れた方が概念化しやすい場合があります。

validates(:price, :numericality => {:greater_than_or_equal_to => 0.01})
于 2013-04-04T07:21:58.880 に答える