的Ruby 1.9.3-P327,Rails的3.2.13ActiveRecord:不能使用關鍵詞標記作爲方法?
我有以下型號:
class ActivationToken < ActiveRecord::Base
before_save :create_token
attr_reader :token
private
def create_token
self.token = 'abc123'
end
end
當我創建一個新的ActivationToken記錄,並呼籲my_token.token
我得到nil
,但如果我參考作爲散列,my_token[:token]
我得到一個值。
這是爲什麼?
嘗試在刪除'attr_reader:token'後將其作爲'my_token.token'進行訪問。 – kiddorails
如果將其設置爲attr_accessor,則它可以工作。我不希望該值可寫,因此將其聲明爲attr_reader。感覺像某種名稱相撞,但我無法找到它的情況。我在本地使用SQLite。 –
在下面添加了答案;也許這將有助於 – kiddorails