Я супер новый для Ruby on Rails. Я пытаюсь создать систему аутентификации с использованием Authlogic (после этого tutorial). ошибка, я получаю право после отправки формы входа:ActionController :: RoutingError (нет совпадений маршрутов)/user_sessions/......)
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
Эти коды, которые я мысль могла быть вовлечены в получении, что ошибка. Если я должен добавить еще какой-нибудь код, чтобы сделать его более понятным, пожалуйста, дайте мне знать.
Покажите нам свой пользовательский класс. Там что-то не так, и он не вызывает to_param на нем должным образом. – DGM
Я добавил класс UserSession к сообщению. – soroush
Хорошо, почему вы установили to_key? Что вы пытаетесь достичь? ах, учебник ... он устарел, вам не нужна эта функция ... – DGM