- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在研究 Hartl 的 Rails 教程,第 9.2.1 节结束。我的测试没有通过。不知道为什么。希望有人能提供帮助。我已在下面附上错误消息和两个相关文件 1) authentication_pages_spec.rb 和 2) users_controller.rb
失败:
1) 访问编辑页面的Users Controller 中对未登录用户的鉴权授权 失败/错误:它 { should have_title('Sign in') } 预期 #has_title?("Sign in") 返回 true,结果为 false # ./spec/requests/authentication_pages_spec.rb:57:in `block (6 levels) in '
2) 提交更新 Action 的Users Controller 中对未登录用户的鉴权授权 失败/错误:在 { patch user_path(user) } 之前 Action Controller ::参数缺失: 未找到参数:用户 # ./app/controllers/users_controller.rb:40:in user_params'
update' # ./spec/requests/authentication_pages_spec.rb:61:in `block (6 levels) in '
# ./app/controllers/users_controller.rb:27:in
在 2.08 秒内完成60 个例子,2 个失败
失败的例子:
rspec ./spec/requests/authentication_pages_spec.rb:57 # 访问编辑页面的Users Controller 中非登录用户的认证授权rspec ./spec/requests/authentication_pages_spec.rb:62 # 提交更新操作的用户 Controller 中非登录用户的身份验证授权
我的 authentication_pages_spec.rb 是
require 'spec_helper'
describe "Authentication" do
subject { page }
describe "signin page" do
before { visit signin_path }
it { should have_content('Sign in') }
it { should have_title('Sign in') }
end
describe "signin" do
before { visit signin_path }
describe "with invalid information" do
before { click_button "Sign in" }
it { should have_title('Sign in') }
it { should have_selector('div.alert.alert-error', text: 'Invalid') }
describe "after visiting another page" do
before { click_link "Home" }
it { should_not have_selector('div.alert.alert-error') }
end
end
describe "with valid information" do
let(:user) { FactoryGirl.create(:user) }
before { sign_in user }
it { should have_title(user.name) }
it { should have_link('Profile', href: user_path(user)) }
it { should have_link('Settings', href: edit_user_path(user)) }
it { should have_link('Sign out', href: signout_path) }
it { should_not have_link('Sign in', href: signin_path) }
describe "followed by signout" do
before { click_link "Sign out" }
it { should have_link('Sign in') }
end
end
end
describe "authorization" do
describe "for non-signed-in users" do
let(:user) { FactoryGirl.create(:user) }
describe "in the Users controller" do
describe "visiting the edit page" do
before { visit edit_user_path(user) }
it { should have_title('Sign in') }
end
describe "submitting to the update action" do
before { patch user_path(user) }
specify { expect(response).to redirect_to(signin_path) }
end
end
end
end
end
users_controller.rb 是
class UsersController < ApplicationController
def show
@user = User.find(params[:id])
end
def new
@user = User.new
end
def create
@user = User.new(user_params)
if @user.save
flash[:success] = "Welcome to the Sample App!"
redirect_to @user
else
render 'new'
end
end
def edit
@user = User.find(params[:id])
end
def update
@user = User.find(params[:id])
if @user.update_attributes(user_params)
flash[:success] = "Profile updated"
sign_in @user
redirect_to @user
else
render 'edit'
end
end
private
def user_params
params.require(:user).permit(:name, :email, :password,
:password_confirmation)
end
# Before filters
def signed_in_user
redirect_to signin_url, notice: "Please sign in." unless signed_in?
end
end
最佳答案
您在 users_controller.rb 的第 2 行缺少对 signed_in_user 过滤器的调用。你在 Controller 的末尾定义了过滤器,但你没有调用它! :)
在本教程的最后,该行应如下所示:
before_action :signed_in_user, only: [:index, :edit, :update, :destroy, :following, :followers]
但是由于您还没有创建关注者,我认为它应该看起来像这样:
before_action :signed_in_user, only: [:index, :edit, :update, :destroy]
我发现将代码的最终源代码复制到我的硬盘上非常有用,因此我在编写本书时遇到错误时可以将我的代码与原始代码进行比较。
关于ruby-on-rails-4 - hartl 教程在 9.2.1 结束时未通过测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18059635/
我正在按照 Hartl 的教程学习 Rails,并对它进行自己的调整。现在,我想扩展它并添加一个发送电子邮件的联系表单。本教程中不包含此类内容,但在第 10 章结束时,我们学会了使用邮件程序方法,并且
这是我在使用 bundle exec rspec spec/requests/static_pages_spec.rb 时遇到的错误。 我已经包含了 gem 测试单元。 请帮助我,我是 Rails 的
我在尝试实现 Hartl 的 Ruby on Rails 教程中的示例应用程序时遇到了一个奇怪的问题。 当我删除微博时,会发生以下情况: 微博被删除。 用户也会被删除。 定向至“注册”页面。 只应该发
我正在学习 Michael Hartl 的优秀 Rails 教程,并且我正在努力了解种子用户的一个方面。我刚刚完成第 9 章,所以我有一个具有管理员权限的工作登录/注销/编辑/删除系统。作为本章的一部
我将表单部分用于创建微博,如 Listing 10.33 所示与 并按照指示更新相应的 View 文件。但是,我无法通过 Rspec 测试,因为我不断收到“未定义的局部变量或类的方法'对象'...”有
我是 Rails 的新手,但我在 hartls 教程的第 11 章中一直遇到问题,目前是 给 Missing partial microposts/_micropost with {:locale=>
阅读 Hartl 的教程,地址为 list 10.42 在 microposts Controller 中,我们有 def create @micropost = current_user
我已经完成了本教程,但自第 7 节制作注册表单以来,我在 CSS 渲染方面遇到了一些小问题。这就是我得到的: 它应该是这样的: 这是相关的 CSS: @mixin box_sizing { -mo
我刚刚完成了 Hartl 教程的第 8 章,但当我尝试运行测试时,不断出现错误。我收到 3 个相同的错误,该问题似乎源于用户登录测试,其中在固定装置集中(用户)中未找到固定装置 :michael。 这
对于我的测试失败的任何帮助,我将不胜感激。我是根据 Michael Hartl 教程做的,我几乎尝试了所有方法并阅读了很多相关内容,但仍然一无所知。坦克斯 我的测试: 描述“分页”做 before(:
我刚刚完成了 Hartl 教程的第 10 章,但我的 CSS 没有加载到 Heroku 中。 我试过运行 $heroku run bundle exec rake assets:precompile
我正在研究 Michael Hartl 的 Ruby on Rails 教程,我在第 9 章遇到了错误。 错误: 1) Error: UsersIndexTest#test_index_as_ad
我是 RoR 的新手,一直在努力完成 Hartl教程(很棒)。我已经成功地跟进了第 9 章(稍微调整了一下,因为我的最终目标不是制作微博站点)。那时,我决定要在我的应用程序中添加一个“记住我”复选框并
我正在关注 Michael Hartl 教程并在 Listing 10.14 之后,他说 There is one subtlety, though: on failed micropost subm
我以前使用过 Rails 并安装了其他版本。我目前正在尝试遵循 Hartl 的教程,他要求使用特定版本的 Rails 和特定的 gem。 当我尝试运行 rails _5.0.3_ new sample
我一直在关注 Ruby-on-Rails tutorial 中的练习由 M. Hartl 着。我已经完成了第 4 章中的所有练习,但仍停留在这一章上: Create three hashes call
我似乎左右都遇到了失败...我检查了我的代码,一切都已定义并且拼写检查正在检查...这是我的失败...: Failures: 1) User pages index should list eac
我正在写关于我在完成 Michael Hartl 的 Ruby on Rails 教程时遇到的问题。问题是 css 不会更改用于密码确认的输入字段的外观。所有其他输入字段的外观都受 css 规则的影响
我正在编写 Michael Hartl 的教程。我在第 6 章。我要进行用户验证。下面的代码是我被告知要使用的代码,但它不起作用。我收到错误消息 syntax error, unexpected en
我一遍又一遍地检查代码,但我似乎找不到下拉菜单不起作用的原因。因此,我看不到下拉菜单中的链接是否正常工作。此外,标题现在切断了 。任何帮助是极大的赞赏。这是我的代码。 _header.html.erb
我是一名优秀的程序员,十分优秀!