Я на самом деле застрял на главе 9 в Michael Hartl Rails Tutorial: http://ruby.railstutorial.org/chapters/updating-showing-and-deleting-users#sec-unsuccessful_editsMichael Hartl Rails Tutorial - неопределенная метод 'sign_in'
Когда я запускаю эту команду:
$ bundle exec rspec spec/requests/user_pages_spec.rb -e "edit page"
У меня есть что ошибка:
Failure/Error: sign_in user
NoMethodError: undefined method 'sign_in' for #<RSpec::Core::ExampleGroupe::Nested_1::Nested_4::Nested_1:0x4e7a0b8>
Выпуск пришел из этого кода в spec/requests/user_pages_spec.rb
:
describe "edit" do
let(:user) { FactoryGirl.create(:user) }
before do
sign_in user
visit edit_user_path(user)
end
end
Но sign_in
фактически определяется в app/helpers/sessions_helper.rb
:
def sign_in(user)
remember_token = User.new_remember_token
cookies.permanent[:remember_token] = remember_token
user.update_attribute(:remember_token, User.encrypt(remember_token))
self.current_user = user
end
def signed_in?
!current_user.nil?
end
def current_user=(user)
@current_user = user
end
def current_user
remember_token = User.encrypt(cookies[:remember_token])
@current_user ||= User.find_by(remember_token: remember_token)
end
И SessionsHelper
будет включать в app/controllers/application_controller.rb
:
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
include SessionsHelper
end
У вас есть решение?
Проблема возникает из 'include ApplicationHelper', который не был в моем файле' utilities.rb'. Я только что добавил эту строку, и теперь это работа. Спасибо за помощь! – benjaminzanatta
Рад, что я мог бы получить право на вас :). – Art