永続的/非永続的な属性を持つRailsモデルを想定すると、公開されているコードを見ると、さまざまなパターンが使用されます。Ruby/Railsモデル/コントローラのアソシエーション/アトリビュートを参照するときの*、self。*、@ *の相違点
たとえば、あるモデルから別のモデルへの関連付けがあるとします。 self.association_nameと@association_nameの違いは何ですか?。好ましい方法は何ですか?
モデル内のattr_accessor:attrで定義された非永続属性と同じです。両方の方法で参照することができます。self.attrおよび@attr好ましい方法は何ですか?
を参照してください
attr
を使用するためにあなたが優れている値を読み込むとき(self.attr=
を呼び出す)属性を設定するためにのみ使用してください:私は実際に自己を使用する必要があります*それらを参照するために?この文脈で、自己を抜かすことの欠点は何ですか?* – Scholle@Scholle 'self.x = y'を使う必要があります。そうしないと、' y'の評価を 'x'ローカル変数に代入したいと思うでしょう。しかし、スコープ内に変数 'x'がないと仮定すると、' self.x'と 'x'はどちらも' x'メソッドを呼び出します。この場合、「自己」を省略することを好む人もいます(私はそうです)。大きな問題は、一貫性があること*です。 –