我正在尝试使用“链接到”按ID显示用户
在我的users_controller.rb
我有一个方法显示如下所示:
def show
@user=User.find(params[:id])
end`
我对此控制器方法的路线是:
get 'users/:id/show' => 'users#show', as: :show
指令的链接是:
<%= link_to 'show it', show_path(id: user.id) %>
生成的错误是:
未定义的局部变量或方法`user'
我也尝试过这种语法:
<%= link_to 'show it', show_path(@user.id) %>
但我也有这个错误:
nil的未定义方法`id':NilClass
但是当我尝试这个时:<%= link_to 'show it', show_path(1) %>
它工作正常 我使用的是rails 4,我真的不知道问题出在哪里
答案 0 :(得分:1)
你在哪里
<%= link_to 'show it', show_path(@user.id) %>
我的意思是,它应该在用户控制器和index.html.erb中,由index action调用。如果是这样,您没有设置@user变量。例如,您可以在控制器集中使用:
@users = User.all
然后在你的模板中:
<% @users.each do |user| %>
<%= link_to 'show it', show_path(user.id) %>
<% end %>