如何将我的主页与其他页面联系起来?

时间:2019-02-03 11:35:28

标签: ruby-on-rails ruby routes

我正在使用Gem'Devise'来为我的页面设置用户和管理员。我创建了一个登录页面,该页面要求用户首先登录,然后成功登录后,我要将用户重定向到模型 Category 的主页,该页面将仅显示产品类别列表。但是,我还没有找到正确的方法。这是我的路线文件:

Rails.application.routes.draw do
  resources :categories
  root to: 'pages#home'
  devise_for :users
end

这是我在查看页面内的 home.html.erb 文件:

<h1>Login page</h1>
<% if current_user %>
<%= link_to 'Categories', category_path(@category) %>
<%= link_to 'Sign Out', destroy_user_session_path, method:
:delete %>
<% else %>
<%= link_to 'Sign Up', new_user_registration_path %>
<%= link_to 'Sign In', new_user_session_path %>
<% end %>

我收到一条错误消息:

 ActionView::Template::Error 
(No route matches {:action=>"show",:controller=>"categories", :id=>nil},
 missing required keys: [:id]):

如何连接视图 Page home.html.erb 文件和 index.html.erb >类别视图?预先感谢您提供的任何帮助

1 个答案:

答案 0 :(得分:0)

  

如何将视图页面的home.html.erb文件与“类别”视图的index.html.erb连接起来?

如果您想要的是查看所有类别的链接,那么为什么要使用助手查看一个单一类别category_path(@category)(并传递不存在的{{1 }})?而是使用此:

@category