デバイス モデルには次の属性があります: name、version、および full_name
フルネームは名前 + バージョンです:
class Device < ActiveRecord::Base
def prepare
full_name = (!show_version || version.nil?)? name : name + " " + version.to_s
end
end
私が次のことをするとき:
d = Device.new :name => "iPhone", :version => "4"
d.prepare
d.full_name # get nil
「full_name」属性に nil を取得します
「自己」を使用しているときは、次のように機能します。
class Device < ActiveRecord::Base
def prepare
self.full_name = (!show_version || version.nil?)? name : name + " " + version.to_s
end
end
「準備」を行うと、「full_name」属性に「iPhone 4」が表示されます。
ここにいる何人かは、クラスメソッド内で「自己」を使用しないようにするのが良い方法だと私に言いました。しかし、これは問題を引き起こします。
問題は、「self」を使用しないと機能しないのはなぜですか?