attr_accessorを使用する必要がありますか?
-
28-10-2019 - |
質問
私はこれに記載されていることの線に沿って条件付き検証を使用することを計画しています Railscast かなり古いRailscastでは、attr_accessorが使用されます(ビデオの後半の部分をスキップしてコードを表示します)。私はRailsプログラミングを比較的初めてであり、Attr_accessorが何をするかを読みたいと思っていました。これ 役職 それを使用することについて尋ねると、最も上昇した回答は、それらがレールではほとんど使用されるべきではないと言っています。
それは必要ですか/railscastで行われるようにattr_accessorを使用する必要がありますか?または、これらのメソッドは自動的に作成されていますか?この場合、attr_accessorを使用することに危険はありますか?
解決
使用 attr_accessor
アクティブレコードとは何の関係もありません。それがどのように機能するかについて説明します この郵便受け, 、それはARにも関連しています。
さて、何ar します やる、それは自動的に作成されますか? x/x=
) データベースモデルに基づいています. 。これらは自動的に作成されました 方法 実際には、内部ARワーキングにプロキシに使用するスタブです。
ポイントは、 attr_accessor
(自動的に)シンプルなインスタンス変数アクセスをラップしますが、ARは(自動的に)ARマジックをラップするメソッドを作成しました。 2つの操作は相互に排他的です。なぜなら attr_accessor
ARマジックに「リンク」していません。これは、持続しない過渡フィールドを作成するために使用できます。ARは、インスタンス変数を知らないか気にしません。
「危険」は、おそらく一時的な情報でモデルオブジェクトを複雑にすることから生じます - それが一時的なものであれば、 なぜモデルオブジェクトの一部である必要があるのですか? これは、リンクされた質問で最も投票した答えが行う議論です。
ハッピーコーディング。
しかし、私は使用した場合に何が起こるかわかりません attr_accessor
たまたまARモデルにあるものと同じ分野について...少なくとも混乱。