私のアプリケーション全体を通して、self.
はユーザーの名前を参照する必要はありません。 name
は問題なく動作します。なぜ "self"を使ってActiveRecord/Railsモデルのプロパティにアクセスするのですか?
なぜ次のコードではself
が意図したとおりに動作する必要がありますか?ところで
class User< ActiveRecord::Base
before_save :validate_name
def validate_name
if self.name.nil? || self.name.empty?
self.name= "Mr. No Name"
end
end
、私はvalidates_presence_of
保存を防止するために用いることができることを知っているが、私は名前が指定されていない場合、デフォルトで保存します。
Rails 3.0.7。
申し訳ありませんが、 'self.day'は' self.name'になっていました!私は質問を更新しました。 –
Nit:Rubyは 'x = y'をメソッド呼び出しに使用しません。これは常に直接変数(または場合によっては定数)の代入です。 'x'(式として)という形式は、(変数として)そのような' x 'があるかどうかによって決まります。 –
クラスファイルが解析された後に 'name'と' name = 'が動的に追加された場合、' name'は 'self.name'を意味し、' name'はローカル変数です。 –