Ruby on rails 罗。第8章第8.2.4节-未定义的签名方法
我正在编写RoR教程,第8章。我正在尝试完成第8.2.4节-更改布局链接,并运行了Ruby on rails 罗。第8章第8.2.4节-未定义的签名方法,ruby-on-rails,railstutorial.org,Ruby On Rails,Railstutorial.org,我正在编写RoR教程,第8章。我正在尝试完成第8.2.4节-更改布局链接,并运行了$bundle exec rspec spec/,但出现以下错误: Failures: 1) Authentication signin with valid information Failure/Error: click_button "Sign in" NoMethodError: undefined method `sign_in' for #<SessionsC
$bundle exec rspec spec/
,但出现以下错误:
Failures:
1) Authentication signin with valid information
Failure/Error: click_button "Sign in"
NoMethodError:
undefined method `sign_in' for #<SessionsController:0x007fef66b85fd0>
# ./app/controllers/sessions_controller.rb:9:in `create'
# (eval):2:in `click_button'
# ./spec/requests/authentication_pages_spec.rb:35:in `block (4 levels) in <top (required)>'
2) Authentication signin with valid information
Failure/Error: click_button "Sign in"
NoMethodError:
undefined method `sign_in' for #<SessionsController:0x007fef66b33eb0>
# ./app/controllers/sessions_controller.rb:9:in `create'
# (eval):2:in `click_button'
# ./spec/requests/authentication_pages_spec.rb:35:in `block (4 levels) in <top (required)>'
3) Authentication signin with valid information
Failure/Error: click_button "Sign in"
NoMethodError:
undefined method `sign_in' for #<SessionsController:0x007fef6698bba8>
# ./app/controllers/sessions_controller.rb:9:in `create'
# (eval):2:in `click_button'
# ./spec/requests/authentication_pages_spec.rb:35:in `block (4 levels) in <top (required)>'
4) Authentication signin with valid information
Failure/Error: click_button "Sign in"
NoMethodError:
undefined method `sign_in' for #<SessionsController:0x007fef68286130>
# ./app/controllers/sessions_controller.rb:9:in `create'
# (eval):2:in `click_button'
# ./spec/requests/authentication_pages_spec.rb:35:in `block (4 levels) in <top (required)>'
Finished in 1.34 seconds
44 examples, 4 failures
Failed examples:
rspec ./spec/requests/authentication_pages_spec.rb:39 # Authentication signin with valid information
rspec ./spec/requests/authentication_pages_spec.rb:40 # Authentication signin with valid information
rspec ./spec/requests/authentication_pages_spec.rb:38 # Authentication signin with valid information
rspec ./spec/requests/authentication_pages_spec.rb:41 # Authentication signin with valid information
我似乎找不到错误。根据错误输出,我应该在哪里查找,有什么建议吗?多谢各位 检查您的config/routes.rb文件以确保:
match '/signin', to: 'sessions#new'
与会话控制器看到的内容相匹配。“sessions_controller.rb”的创建方法应具有:
def create
user = User.find_by_email(params[:session][:email].downcase)
if user && user.authenticate(params[:session][:password])
sign_in user
redirect_back_or user
else
flash.now[:error] = 'Invalid email/password combination'
render 'new'
end
end
只是我的猜测。在教程中,我目前也在这个领域。祝你好运,我希望这对你有帮助 可能有点晚了,但无论如何 检查在app/controllers/application_controller.rb中是否有“include sessionhelp” 默认情况下,帮助程序包括在视图中,但您必须在控制器中显式地包括它们可能的副本表明应用程序控制器中应该有一个“include SessionHelper”。
def create
user = User.find_by_email(params[:session][:email].downcase)
if user && user.authenticate(params[:session][:password])
sign_in user
redirect_back_or user
else
flash.now[:error] = 'Invalid email/password combination'
render 'new'
end
end