Ruby on Railsでは、違いは何ですか
:bonus_card
と
dependent: ?
(例では
class TrainPassengers < ActiveRecord::Base
has_one :bonus_card, dependent: :destroy
end
)。
Ruby on Railsでは、違いは何ですか
:bonus_card
と
dependent: ?
(例では
class TrainPassengers < ActiveRecord::Base
has_one :bonus_card, dependent: :destroy
end
)。
これはruby1.9の新しい構文です
dependent: :destroy
これの代替です
:dependent => :destroy
経験豊富な人がそれについて考えているので、あなたはルビーに慣れていないと思います。あなたが足場を組んでいる場合は、::destroyこのコードはデフォルトでレールによって生成されます。
:dependent、:destroy、:bonus_cardはすべてシンボルです。シンボルについて読むと、これらは非常に便利です。
Rubyでは、:something
はシンボルです。シンボルはメモリに保持され、すばやく検索される参照であるため、ハッシュキーとして使用するのに適したデータ型です。Rubyハッシュは通常次のようになります。
{ :some_key => "some data", :other_key => 65536, :yet_another_key => :symbol_as_data }
Ruby 1.9では、上記を記述するための省略表記が導入されました。キーが記号である限り、コロンを最後に移動して太い矢印を省略できます。=>
{ some_key: "some data", other_key: 65536, yet_another_key: :symbol_as_data }
これは、ハッシュキーとして渡されたシンボル(メソッドパラメーターとして渡されたハッシュでも)にのみ有効です。ハッシュキーとして使用される他のオブジェクトは、引き続き太い矢印(=>
)を使用する必要があり、他の場所で使用される記号は常にコロンファーストで記述されます。