-2

RAILSで認証システムを作成しようとしていますfind_by_user_name_and_password()

次の問題があります。

undefined method `find_by_user_name_and_password' for #<Class:0x007fae373d5698>
Rails.root: /ror/blog/Blog`

Application Trace | Framework Trace | Full Trace
app/controllers/sessions_controller.rb:7:in `create'

これが sessions_controller からの私のコードです

    class SessionsController < ApplicationController
    skip_before_filter :authorizes
  def new
  end

  def create
        user = User.find_by_user_name_and_password(params[:name], params[:password]) 
        if user
            session[:user_id] = user.id
            redirect_to admin_url
        else
            redirect_to login_url, alert: "Bad datas"
        end
  end

  def destroy
    session[:user_id] = nil
    rederect_to blog_url, notice: "End seans"
  end
end

モデル定義:

class User < ActiveRecord::Base
  attr_accessible :name, :password_digest, :password_confirmation
  validates :name, presence: true, uniqueness: true
    #validates_confirmation_of :password  
  has_secure_password
end

移行する

class CreateUsers < ActiveRecord::Migration
  def change
    create_table :users do |t|
      t.string :name
      t.string :password_digest

      t.timestamps
    end
  end
end
4

1 に答える 1

0

投稿したばかりのモデルを見ると、パスワードフィールドがないことがわかります...ですfind_by_whatever_and_password

あなたが使用する必要があります

user = User.find_by_name(params[:user][:name])
if user && user.authenticate(params[:user][:password])
  # etc.
于 2013-02-07T16:25:39.463 に答える