这里的一个菜鸟问题;不知道为什么我会收到这个错误,一直在关注红宝石教程中的一个' T'我想,这是我的错误:
失败[" test_invalid_signup_information",UsersSignupTest,1.276558378001937] test_invalid_signup_information #UsersSignupTest(1.28s) 预计至少有1个元素匹配"表格[action =" / signup"]",找到0 .. 预期0为> = 1。 test / integration / users_signup_test.rb:7:在`block in'
中以下是它所指的测试:
test "invalid signup information" do
get signup_path
assert_select 'form[action="/signup"]'
assert_no_difference 'User.count' do
post signup_path, params: { user: {name: "", email: "user@invalid", password: "foo", password_confirmation: "bar"}}
end
这是路由问题吗?老实说,我回过头来重新整理前一章,仍然无法找到我的漏洞,任何想法,我错过了什么?
编辑:这是它所指的部分,_form.html.erb:
<%= form_for(@user) do |f| %>
<%= render 'shared/error_messages', object: @user %>
<%= f.label :name %>
<%= f.text_field :name, class: 'form-control' %>
<%= f.label :email %>
<%= f.email_field :email, class: 'form-control' %>
<%= f.label :password %>
<%= f.password_field :password, class: 'form-control' %>
<%= f.label :password_confirmation %>
<%= f.password_field :password_confirmation, class: 'form-control' %>
<%= f.submit yield(:button_text), class: "btn btn-primary" %>
<% end %>
答案 0 :(得分:1)
我正在处理相同的教程并遇到了同样的问题。您遇到的问题是由于您完成了7.3.4中的上一个练习。本部分让您更新表单,以便将其发布到正确的URL。
您必须将部分_form.html.erb的第1行更新为以下内容:
<%= form_for(@user, url: signup_path) do |f| %>
这应该可以消除错误。
编辑:您必须使用上面的网址的收益率,因为表单的2次使用的路径不同。即:编辑:需要右括号
<%= form_for(@user, url: yield(:form_path)) do |f| %>
这需要edit.html.erb中的新提供行:
<% provide(:form_path, user_path) %>
和new.html.erb文件:
<% provide(:form_path, signup_path) %>