私はまだRubyとRoRの学習段階ですが、私はすでに問題に遭遇しました。 フィールド「名前」と「パスワード」を持つユーザと呼ばれる足場を作成しました。 その後、「ピン」や「塩」などのフィールドも追加しました。ダイナミックメソッドはアプリ内で動作しませんか?
User.find_by_nameとfind_by_passwordは何らかの理由で完全に正常に動作しますが、find_by_pinは機能していません。私は少しグーグルを試みたが、何も見つかりませんでした。
ルビーコンソール(レールコンソール)でも同じ方法を試しましたが、何らかの理由でそれが完全にうまく動作しています。予想通りに正しいデータを返します。
EDIT 1:
誰かがコメントで述べたように、のは、私はこのコードを使用していましょう:(はい、クッキー[:ピン]が設定されている)
def get_user
user = User.find_by_pin(cookies[:pin])
if user.pin == cookies[:pin]
'yes'
end
end
以降Iそれがこれを返す
<%= get_user %>
:
これを行います3210EDIT 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
をし、それがnilである 'を返します。それはどういう意味ですか?
はdef pin_check
user = User.find_by_name('Crembo')
if user.pin == cookies[:pin]
'true'
else
'false'
end
end
trueを返し、それを拡張します。
EDIT 3:
コメントで尋ねたように、私のUserモデル:
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'がお手伝いします。 – fl00r
'find_by_pin'を使用しようとするとどうなりますか?あなたは彼らが「うまくいかない」方法を詳しく説明する必要があります。 – James
これまでに10回くらい行ったことがありますが、まだ何もありません。 Jamesが望んでいたような説明を追加しました。 – Crembo