Railsは初めてです!
OK、ユーザー登録フォームを設定しようとしています。ルート内の単一のリソースとしてマップされます
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):
パラメータでは、「users」コントローラーを呼び出していることがわかります。しかし、それを修正する方法や、「ユーザー」コントローラーではなく「ユーザー」コントローラーを呼び出す原因がわかりません。
何か案は?前もって感謝します!