Я запустил тестовый файл RSpec, который заполняет форму и отправляет ее. Я получаю следующее сообщение об ошибке:NoMethodError: undefined method `model_name 'для Fixnum: Class
1) Sign Up Advertiser after adding valid information should create a user
Failure/Error: expect { click_button submit }.to change(User, :user_key)
NoMethodError:
undefined method `model_name' for Fixnum:Class
# /mnt/hgfs/Projekte/adserve.example.de/app/controllers/advertisers_controller.rb:31:in `tryToCreateUser'
# /mnt/hgfs/Projekte/adserve.example.de/app/controllers/advertisers_controller.rb:14:in `create'
# ./sign_up_advertiser_spec.rb:32:in `block (4 levels) in <top (required)>'
# ./sign_up_advertiser_spec.rb:32:in `block (3 levels) in <top (required)>'
Это код для контроллера:
class AdvertisersController < ApplicationController
...
def home
@menuindex = 0
end
def create
@user = Advertiser.new (params[:advertiser])
tryToCreateUser
end
def tryToCreateUser
if @user.save
@user = Advertiser.retrieve(@user.id)
redirect_to home, :notice => "You successfully signed up " + @user.full_name
else
render :action => "https://stackoverflow.com/users/new", :layout => 'application'
end
end
end
И это то, что routes.rb выглядит
match "signup_advertiser" => "advertisers#new", :as => "signup_advertiser"
match "signup_publisher" => "publishers#new", :as => "signup_publisher"
get "advertisers_home" => "advertisers#home"
resources :advertisers
Так что я думаю, ошибка находится в части redirect_to. Но я не могу понять. Я возился с визуализацией пользовательского действия в «доме» и некоторых других вещах. Я думаю, что это что-то довольно основное, поэтому помощь будет очень оценена. Благодарю.
Будьте осторожны с вызовами метода. 'new (...)' и 'new (...)' можно интерпретировать как разные вещи. Правильный способ - избегать пробелов. – tadman
oops. там хорошее место. Я думаю, что весь код просто сильно обманут ... – Nessuno