Estoy siguiendo el Tutorial Rails de Michael Hartl en este momento y he logrado 7.22 sin ningún tipo de enganche importante. Sin embargo estoy confundido por la salida de la prueba, que dice:Michael Hartl Rails Tutorial capítulo 7 error Acción no encontrada en UsersController
Failures:
1) UserPages signup with invalid information should not create a user
Failure/Error: expect{click_button submit }.not_to change(User, :count)
AbstractController::ActionNotFound:
The action 'create' could not be found for UsersController
# (eval):2:in `click_button'
# ./spec/requests/user_pages_spec.rb:29:in `block (5 levels) in <top (required)>'
# ./spec/requests/user_pages_spec.rb:29:in `block (4 levels) in <top (required)>'
2) UserPages signup with valid information should create a user
Failure/Error: expect{click_button submit}.to change(User, :count).by(1)
AbstractController::ActionNotFound:
The action 'create' could not be found for UsersController
# (eval):2:in `click_button'
# ./spec/requests/user_pages_spec.rb:42:in `block (5 levels) in <top (required)>'
# ./spec/requests/user_pages_spec.rb:42:in `block (4 levels) in <top (required)>'
Finished in 0.7718 seconds
6 examples, 2 failures
He añadido lo siguiente a mis usuarios de la página controladores siguiendo las instrucciones del tutorial:
class UsersController < ApplicationController
def show
@user = User.find(params[:id])
end
def new
@user = User.new
end
end
pero todavía doesn' parece que funciona He intentado añadir un método de crear, pero que acaba de lanza de nuevo un error de plantilla que falta ...
En caso de que ayuda aquí está la salida del comando rake routes:
~/dev/rails/sample_app$ rake routes
users GET /users(.:format) users#index
POST /users(.:format) users#create
new_user GET /users/new(.:format) users#new
edit_user GET /users/:id/edit(.:format) users#edit
user GET /users/:id(.:format) users#show
PUT /users/:id(.:format) users#update
DELETE /users/:id(.:format) users#destroy
root / static_pages#home
signup /signup(.:format) users#new
help /help(.:format) static_pages#help
about /about(.:format) static_pages#about
contact /contact(.:format) static_pages#contact
En respuesta a un comentario, las pruebas que están fallando son:
describe "signup" do
before{ visit signup_path }
let(:submit) {"Create my account"}
describe "with invalid information" do
it "should not create a user" do
expect{click_button submit }.not_to change(User, :count)
end
end
describe "with valid information" do
before do
fill_in "Name", with: "Example User"
fill_in "Email", with: "[email protected]"
fill_in "Password", with: "foobar"
fill_in "Confirmation", with: "foobar"
end
it "should create a user" do
expect{click_button submit}.to change(User, :count).by(1)
end
end
end
¡Gracias de antemano por cualquier consejo!
Veo a los usuarios # crear ruta, así que supongo que la acción de crear está definida en su controlador? publique las pruebas apropiadas, podría ser un error ortográfico en alguna parte – TheIrishGuy
@TheIrishGuy las pruebas fallidas se han publicado arriba gracias – TangoKilo
Si arroja un error de "plantilla faltante", entonces probablemente no tenga una plantilla 'create'. –