這可能是一個非常愚蠢的問題。我對Ruby很新,因此不知道我在做什麼。 我在application.html.erb中設置了一個佈局。我的導航鏈接之一就是鏈接到簡歷的默認顯示頁面。我應該可能將其設置爲索引而不是顯示。但是當我嘗試時,事情變得更加混亂。Ruby on Rails UrlGenerationError
隨着我目前擁有的代碼,我得到的錯誤是
Showing thisSectionOfUrlTakenOut/app/views/layouts/application.html.erb
where line #22 raised:
No route matches {:controller=>"resume", :action=>"show"} missing required keys:
[:id]
Extracted source (around line #22):
19 <ul>
20 <li><%= link_to "Home", welcome_index_path %></li>
21 <li><%= link_to "Projects", projects_path %></li>
22 <li><%= link_to "Resume", resume_path, method => show %></li>
23 <li><%= link_to "Blog", posts_path %></li>
24 </ul>
25 </nav>
原樣,我application.html.erb看起來是這樣的。
<!DOCTYPE html>
<html>
<head>
<title>Portfolio</title>
<%= stylesheet_link_tag "application", media: "all",
"data-turbolinks-track" => true %>
<%= javascript_include_tag "application",
"data-turbolinks-track" => true %>
<%= csrf_meta_tags %>
</head>
<body>
<header>
<% if current_user %>
<h1>Welcome</h1>
<%else%>
<h1> Portfolio</h1>
<%end%>
<nav>
<ul>
<li><%= link_to "Home", welcome_index_path %></li>
<li><%= link_to "Projects", projects_path %></li>
<li><%= link_to "Resume", resume_path, method => show %></li>
<li><%= link_to "Blog", posts_path %></li>
</ul>
</nav>
</header>
<%= yield %>
<footer>
<% if !current_user %>
<%= link_to "Login", admin_console_index_path%>
<% else %>
<%= link_to "Logout", destroy_user_session_path, :method => :delete%>
<%end%>
</footer>
</body>
</html>
的routes.rb中看起來像
Portfolio::Application.routes.draw do
devise_for :users
resources :posts do
resources :comments
end
resources :projects
resources :resume
resources :admin_console
resources :welcome
root 'welcome#index'
end
而且resume_controller.rb看起來像
class ResumeController < ApplicationController
def show
end
end
如果有幫助,一些問題開始時,我開始使用設計。但從那以後,我認爲其他的錯誤讓事情變得更糟。我會非常感謝任何幫助。如果你能解釋給我,那會更好
你會有多個簡歷保存在分貝,或者這是一個個人網站,你只會顯示自己的? – jstim
你是通過網站上的表單創建簡歷還是通過手工通過html? –
資源需要一個id來顯示特定的簡歷@jstim askes你會有更多的1,或者你只是想/繼續顯示*你的*簡歷?如果前者,你需要傳遞一個簡歷對象(或一個id到resume_path) – Doon