我是新来的铁路!
好的,我正在尝试设置用户注册表单。它被映射为路线中的单一资源
map.resource :user
并尝试通过控制台创建用户工作正常。用户注册的控制器代码如下:
def signup
@user = User.new#(params[:user])
end
def create
@user = User.new(params[:user])
#debugger
if request.post?
if @user.save
session[:user] = User.authenticate(@user.login, @user.password)
flash[:message] = "Signup successful"
redirect_to registries_path
else
flash[:warning] = "Signup unsuccessful"
#redirect_to 'user/signup'
end
end
end
注册视图如下(这是我认为出了点问题的地方)
<% form_tag user_path do %>
<p>User creation.</p>
<p><%= error_messages_for 'user' %></p>
<p>
<label>Username:</label>
<%= text_field_tag 'login', nil, :size => 20, :maxlength => 20 %>
</p>
<p>
<label>Password:</label>
<%= password_field_tag 'password', nil, :size => 20, :maxlength => 20 %>
</p>
<p>
<label>Password confirmation:</label>
<%= password_field_tag 'password_confirmation', nil, :size => 20, :maxlength => 20 %>
</p>
<p>
<label>Email:</label>
<%= text_field_tag 'email' %>
</p>
<p><%= submit_tag 'Signup' %></p>
<% end %>
现在,该页面呈现得很好。我已经在单数的“user_path”上调用了表单(我认为?)。但是当我点击提交按钮时,它给了我一个错误说
uninitialized constant UsersController
错误的发生是有道理的,因为 User 是单数的,所以如果它试图调用 Users 控制器,它应该抛出一个错误。当我检查服务器日志时,它显示以下消息:
Processing ApplicationController#create (for 127.0.0.1 at 2010-05-08 16:26:14) [POST]
Parameters: {"commit"=>"Signup", "password_confirmation"=>"[FILTERED]", "action"=>"create", "authenticity_token"=>"yOcHY+rMjaqmu9HS8EwnDqJKbc0Zxictc0y4dtD26ac=", "controller"=>"users", "login"=>"bob", "password"=>"[FILTERED]", "email"=>"bob@thetester.com"}
NameError (uninitialized constant UsersController):
在参数中,我可以看到它正在调用“用户”控制器。但我不确定如何解决这个问题,或者是什么导致它调用“用户”控制器而不是“用户”控制器。
有任何想法吗?提前致谢!