[英]Rails 4 routing - No route matches
我在Rails 4(生銹的Rails用戶)中遇到了一些路由問題。 我的Session控制器有以下路由:
controller :sessions do
get 'login' => :new
post 'login' => :create
delete 'logout' => :destroy
end
get "sessions/create"
get "sessions/destroy"
我有一個看起來像這樣的表格:
= form_tag do
.form_container
.field
= label_tag :name, "Namn:"
= text_field_tag :name, params[:name]
.field
= label_tag :password, "Lösenord:"
= password_field_tag :password, params[:password]
.actions
= submit_tag 'Login', :class => "submit_button"
我的session #create action看起來像這樣:
def create
user = User.find_by(name: params[:name])
if user and user.authenticate(params[:password])
session[:user_id] = user.id
redirect_to root_path
else
redirect_to login_url, alert: "Invalid user/password combination"
end
end
我收到以下錯誤:
No route matches [POST] "/login/create"
在這種情況下我的路線怎么樣?
我一般都有
resource :session
post 'login' => 'sessions#create'
get 'login' => 'sessions#new'
這創造了
session POST /session(.:format) sessions#create
new_session GET /session/new(.:format) sessions#new
edit_session GET /session/edit(.:format) sessions#edit
GET /session(.:format) sessions#show
PUT /session(.:format) sessions#update
DELETE /session(.:format) sessions#destroy
login POST /login(.:format) sessions#create
GET /login(.:format) sessions#new
之后,只需在需要的地方使用正確的URL
= form_tag login_path
...
這應該夠了吧
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.