我正在尝试手动构建用户模型(不使用routes.rb文件中的'resources:users')。我的routes.rb文件看起来像这样:未定义的方法'user_path'
match '/users/:id', :to => 'users#show'
match '/all_users', :to => 'users#index'
这是用户控制我的索引方法:
def index
@title = "All users"
@users = User.paginate(:page => params[:page])
end
这是我的索引视图:
<h1>All users</h1>
<%= will_paginate %>
<ul class="users">
<% @users.each do |user| %>
<li>
<%= link_to user.email, user %>
</li>
<% end %>
</ul>
<%= will_paginate %>
我得到这个错误当我打本地主机时出现消息:3000/all_users:
undefined method `user_path'
我不明白这是从哪里来的,任何人都可以帮忙..?
编辑:
好吧,我发现,在视图中改变“用户”到“@user”使得它的工作:
<%= link_to user.email, @user %>
但我真的不明白错误信息,或'用户'和'@user'之间的真正区别。另外,点击创建的链接不会重定向到用户页面,它会保留在localhost:3000/all_users上。
谢谢你,伟大工程! – newUserNameHere 2014-01-20 23:55:34
对于任何使用rails 4的用户,请改用'get'/ users /:id',:to =>'users#show',:as =>:user' – 2014-01-24 02:12:31
谢谢。作品魅力! – 2016-09-18 17:39:28