7

Rubyでコロンを追加することと前に追加することの違いは何ですか?

例:

#In rails you often have things like this:
has_many :models, dependent: :destroy

dependent:コロンが追加されているのに、コロンが先頭に追加されているのは:modelsなぜ:destroyですか? 違いはなんですか?

4

4 に答える 4

5

()Ruby では括弧と場合によっては中括弧を省略できるため{}、あまり明白ではないかもしれませんが、上記のコードは実際には次のようになります。

has_many(:models, { dependent: :destroy } )

has_manyこれは、が 2 つの引数を取ることを意味します。1 つは symbol :、必要に応じて不変の文字列、そしてdependentがキーでdestroyが値であるハッシュです。と見られることもあり:dependent => destroyます。

于 2013-08-13T19:07:22.497 に答える
2

「追加された」コロンは、単に 1.9 でハッシュを表示する新しい一般的な方法です。

dependent: :destroyと同じことです:dependent => :destroy

一方、「先頭に付いた」コロンは、Ruby のシンボル データ型を示します。

于 2013-08-13T19:07:18.950 に答える