我使用的設計在應用中的第一次,我有一個奇怪的問題,我無法理解:設計鏈接/路由混錯與非色器件模型
我已經建立了我的用戶模型設計,並設置所有的註冊,用戶註冊等,一切正常。在我的應用程序標題,我有我的導航菜單(目前爲空),並在日誌中的部分,註銷等:
_header.html.erb
<div class='topbar'>
<div class='container'>
<%= link_to 'My app', root_path, :class => 'brand' %>
<div class='nav'>
</div>
<%= render 'layouts/user_options' %>
</div>
</div>
_user_options.html.erb
<ul class='user-options'>
<% if user_signed_in? %>
<li><%= link_to "Signed in as #{current_user.username}", '#' %></li>
<li><%= link_to "Sign out", destroy_user_session_path, :method => :delete %></li>
<% else %>
<li><%= link_to "Sign up", new_user_registration_path %></li>
<li><%= link_to "Sign in", new_user_session_path %></li>
<% end %>
</ul>
現在,我將第一個鏈接導航菜單,如果我使用:
<%= link_to 'Tasks', '/tasks/index' %>
一切很好。但是,如果使用:
<%= link_to 'Tasks', :controller => 'tasks', :action => 'index' %>
當我點擊任何一個設計環節,如「登錄」,我得到'No route matches {:controller=>"devise/tasks"}'
通過對意見的要求,這裏是rake routes:
任務的輸出:TOP =>路線=>環境 (請參閱通過運行帶有--trace任務全部跟蹤) 的MacBook-PRO-DE-O:dearsherpa奧斯卡$束EXEC耙路線
tasks_index GET /tasks/index(.:format) {:controller=>"tasks", :action=>"index"}
tasks_show GET /tasks/show(.:format) {:controller=>"tasks", :action=>"show"}
new_user_session GET /users/sign_in(.:format) {:action=>"new", :controller=>"devise/sessions"}
user_session POST /users/sign_in(.:format) {:action=>"create", :controller=>"devise/sessions"}
destroy_user_session DELETE /users/sign_out(.:format) {:action=>"destroy", :controller=>"devise/sessions"}
user_password POST /users/password(.:format) {:action=>"create", :controller=>"devise/passwords"}
new_user_password GET /users/password/new(.:format) {:action=>"new", :controller=>"devise/passwords"}
edit_user_password GET /users/password/edit(.:format) {:action=>"edit", :controller=>"devise/passwords"}
PUT /users/password(.:format) {:action=>"update", :controller=>"devise/passwords"}
cancel_user_registration GET /users/cancel(.:format) {:action=>"cancel", :controller=>"devise/registrations"}
user_registration POST /users(.:format) {:action=>"create", :controller=>"devise/registrations"}
new_user_registration GET /users/sign_up(.:format) {:action=>"new", :controller=>"devise/registrations"}
edit_user_registration GET /users/edit(.:format) {:action=>"edit", :controller=>"devise/registrations"}
PUT /users(.:format) {:action=>"update", :controller=>"devise/registrations"}
DELETE /users(.:format) {:action=>"destroy", :controller=>"devise/registrations"}
root / {:controller=>"pages", :action=>"home"
,這裏是路線。 rb:
get "tasks/index"
get "tasks/show"
devise_for :users
root :to => 'pages#home'
這是爲什麼?我做錯了什麼?
編輯2:順便說一句,我忘了提及Task belongs_to User
,並且用戶模型已由設計生成。這可能是造成這種情況的原因。無法訪問/任務/索引沒有/ user/id/tasks /?
編輯:更怪異的東西,我嘗試使用資源:在我的路線文件的任務,而不是該控制器的「得到」的路線,而現在當我點擊<%= link_to 'Tasks', :controller => 'tasks', :action => 'index' %>
需要我的演出動作。所以顯然,我的路線出現了一些問題。
運行:rake路由並將結果複製粘貼到此處。 – daniel
你可以發佈routes.rb的代碼並運行'rake routes'嗎? – stephenmurdoch
完成後,我編輯了我的問題 –