Я мог бы пойти по этому неправильному пути. Сначала я делаю спецификацию, BDD / TDD и столкнулся с проблемой.
У меня есть этот application_controller_spec.rb
require "spec_helper"
describe ApplicationController do
describe "current_user" do
it "should return nil if no one is logged in" do
subject.current_user.should be_nil
end
it "should return currently logged in user" do
hash = {user_id: "my_id"}
subject.should_receive(:session).and_return hash
subject.current_user.should == "my_id"
end
end
end
, который отлично работает без ключевое слово protected
.
application_controller.rb
class ApplicationController < ActionController::Base
protect_from_forgery
helper_method :current_user
protected
def current_user
session[:user_id]
end
end
с с включенным protected
, я получаю эту ошибку msg
NoMethodError: protected method `current_user' called for #<ApplicationController:0x2a90888>
Я должен быть в состоянии проверить, используя helper_method ... Есть предложения?