1

私のRoute.rbファイルでそのように定義を保存する前に実行しようとしています。(@current_user.email がエラーの原因です)

      class Route < ActiveRecord::Base

  before_save { |route| route.created_by = @current_user.email }

end

しかし、私はこのエラーを受け取ります、

undefined method `email' for nil:NilClass

しかし、私はそれを私の_header.html.erbようなものでうまく使うことができます:

<a class="btn btn-primary dropdown-toggle" data-toggle="dropdown" href="#">
    <%= @current_user.email %>
    <span class="caret"></span>

@current_usersessions_helper私のように説明されています:

module SessionsHelper

    def sign_in(user)
        cookies.permanent[:remember_token] = user.remember_token
        current_user = user
    end

    def signed_in?
        !current_user.nil?
    end

    def current_user=(user)
        @current_user
    end

    def current_user
        @current_user ||= User.find_by_remember_token(cookies[:remember_token])
    end

    def current_user?(user)
        user == current_user
    end

    def sign_out
        current_user = nil
        cookies.delete(:remember_token)
    end
end

before_saveエラーが発生せずにこれを実行できないのはなぜですか? みんなありがとう。

4

1 に答える 1