(Noルートの試合は「/ user_sessions/...)。私は(このtutorial以下)Authlogicを使用した認証システムを作るしようとしています。ActionController :: RoutingError私はRuby on Railsをにスーパー新たなんだ
No route matches "/user_sessions/%23%3CUserSession:0x103486aa8%3E"
驚くべきことに、エラーが表示されますフォームが送信された直後のページのURLは次のとおりです:
http://localhost:3000/user_sessions/%23%3CUserSession:0x103486aa8%3E
I私は取得していますエラーは、私は、ログインフォームを送信した直後であります私が何を間違って行ったのか、そしてその奇妙なUserSessionコードがどこから来ているのか分かりません!!!
これは私のログインフォームがどのように見えるかです:ここでは
<% form_for @user_session do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :username %><br />
<%= f.text_field :username%>
</p>
<p>
<%= f.label :password %><br />
<%= f.password_field :password %>
</p>
<p><%= f.submit "Submit" %></p>
<% end %>
は私のUserSessionクラスです:
class UserSession < Authlogic::Session::Base
def to_key
new_record? ? nil : [ self.send(self.class.primary_key) ]
end
end
と私UserSessionControllerのアクションを作成:
def create
@user_session = UserSession.new(params[:user_session])
if @user_session.save
flash[:notice] = "Login successful!"
redirect_back_or_default root_path
else
render :action => :new
end
end
"redirect_ba ck_or_default ApplicationControllerにの」方法:
def redirect_back_or_default(default)
redirect_to(session[:return_to] || default)
session[:return_to] = nil
end
そして最後にuser_sessionsに関連するすべてのものroutes.rbを中:
resources :user_sessions
match 'login' => "user_sessions#destroy", :as => :login
match 'logout' => "user_sessions#destroy", :as => :logout
これらはI考えがあること得ることに関与することができることをコードしていますエラー。より明確にするためにいくつかのコードを追加する必要がある場合は、私に知らせてください。
私達にあなたのUserSessionクラスを表示します。何かが間違っていて、正しくto_paramを呼び出していません。 – DGM
私はUserSessionクラスを投稿に追加しました。 – soroush
あなたはなぜto_keyに設定しましたか?あなたは何を達成しようとしていますか?ああ、チュートリアル...古いですが、あなたはその機能を必要としません... – DGM