我有一个错误,希望有人可以帮助并给我一些线索来处理这个问题。我有选择地遵循敏捷开发书,当我复制他们的代码时,结果如下:
Routing Error
No route matches [POST] "/sessions/new"
Try running rake routes for more information on available routes.
这就是我的 routes.rb 文件中的内容:
get 'admin' => 'admin#index'
controller :sessions do
get 'login' => :new
post 'login' => :create
delete 'logout' => :destroy
end
resources :users
在我的 session_controller: skip_before_filter :authorize def new end
def create
user = User.find_by_name(params[:login_name])
if user and user.authenticate(params[:password])
session[:user_id] = user.id
redirect_to admin_url
else
redirect_to login_url, alert: "Invalid user/password combination"
end
end
def destroy
session[:user_id] = nil
redirect_to users_url, notice: "Logged out"
end
在我的 session#new.html.erb 中:
<% if flash[:alert] %>
<p id="notice"><%= flash[:alert] %></p>
<% end %>
<%= form_tag do %>
<fieldset>
<legend>Please Log In</legend>
<div>
<%= label_tag :login_name, 'Login name:' %>
<%= text_field_tag :login_name, params[:login_name] %>
</div>
<div>
<%= label_tag :password, 'Password:' %>
<%= password_field_tag :password, params[:password] %>
</div>
<div>
<%= submit_tag "Login" %>
</div>
</fieldset>
<% end %>
我也在使用 has_secure_password 并且最近更新到 Ruby v 193 和 Rails 3.2.8。我只是仍在学习 ROR,因此非常感谢您的帮助-我一直在尝试自己弄清楚,但我无法做到。