0
我仍然處於Ruby和RoR的學習階段,但我已經遇到了一個問題。 我已經創建了一個名爲「name」和「password」字段的腳手架。 稍後,我還添加了更多字段,例如「pin」和「salt」。動態方法不能在應用程序中工作?
現在,雖然User.find_by_name和find_by_password工作得很好,但出於某種原因,find_by_pin似乎不起作用。我嘗試了谷歌搜索,但沒有發現任何東西。
我也在ruby控制檯(rails控制檯)中試過同樣的方法,出於某種原因,它在那裏工作得非常好 - 它會像預期的那樣返回正確的數據。
任何想法?
編輯1:
正如有人在評論中指出,假設我正在使用此代碼:(是的,餅乾[:密碼]設置)
def get_user
user = User.find_by_pin(cookies[:pin])
if user.pin == cookies[:pin]
'yes'
end
end
後來我做到這一點:
<%= get_user %>
它返回:
undefined method `pin' for nil:NilClass
編輯2:
我嘗試這樣做:
def get_user
user = User.find_by_name('Crembo')
user.pin # returns 753e345a113471a6775e242f444704fe
user = User.find_by_pin(user.pin)
if user.nil?
'is nil'
else
'exists'
end
end
,並返回 '是零'。這有什麼意義?
要延長,
def pin_check
user = User.find_by_name('Crembo')
if user.pin == cookies[:pin]
'true'
else
'false'
end
end
返回true。
編輯3:
由於要求在評論,我的用戶模型:
class User < ActiveRecord::Base
has_many :posts
validates_uniqueness_of :name
def password_matches?(password_to_match)
self.password == Digest::SHA512.hexdigest(password_to_match)
end
end
'rake db:migrate' should help you。 – fl00r 2012-03-25 20:53:25
當您嘗試使用'find_by_pin'時究竟發生了什麼?你需要詳細說明他們「似乎不工作」。 – James 2012-03-25 20:56:13
到目前爲止,這樣做了10次左右,仍然沒有。按照James的意願添加了解釋。 – Crembo 2012-03-25 20:57:19