我試圖實現一個Twitter Boostrap登錄表單,這將在每個頁面上使用(因爲導航欄是一個部分的佈局)。沒有路由匹配{:action =>「show」,:controller =>「users」}
然而,試圖代碼的時候下面我得到以下錯誤:
No route matches {:action=>"show", :controller=>"users"}
用戶控制器:
class UsersController < ApplicationController
def index
@users = User.all
end
def show
...
end
def login
...
end
end
_navigation.html.erb:
<div class="dropdown-menu" style="padding: 15px; padding-bottom: 0px;">
<%= form_for("user", :url => user_path) do |f| %>
<%= f.label :email%>
<%= f.text_field(:email, :size => 30, :class => 'login_field', :placeholder => 'Användarnamn')%>
<%= f.label :password%>
<%= f.text_field(:password, :size => 30, :class => 'login_field', :placeholder => 'Lösenord')%>
<%= f.submit "Logga in", :class => 'login_submit btn btn-primary' %>
<% end %>
</div>
的config/routes.rb文件:
get "home/index"
resources :users
resources :projects
resources :tickets
root :to => 'home#index'
耙路線(即有用戶做):
users GET /users(.:format) users#index
POST /users(.:format) users#create
new_user GET /users/new(.:format) users#new
edit_user GET /users/:id/edit(.:format) users#edit
user GET /users/:id(.:format) users#show
PUT /users/:id(.:format) users#update
DELETE /users/:id(.:format) users#destroy
我是新來的Rails,但覺得奇怪的是它抱怨說,路由不存在,因爲要在用戶控制器內部找到「show」操作。
我想知道的另一件事是爲什麼它尋找動作「顯示」,而在這種情況下它應該是「登錄」?
爲什麼會發生這種情況,我該怎麼辦?
什麼是你的'配置/ routes.rb'文件是什麼樣子? –
您可以在您的控制檯中執行'rake routes'並檢查用戶控制器的登錄操作路徑是什麼。如果登錄是用戶資源的集合操作,它應該是'login_users_path'。 –
更新了我的問題! – holyredbeard