Ruby on Rails - 用户#show中的show_user_path NoMethodError

时间:2014-02-05 16:49:47

标签: ruby-on-rails ruby

我是Rails中的一个初学者,我正在关注一本书中的代码,我正在尝试查看它是否中断/正常工作,无论如何继承我的UserControllers classUserController

class UsersController < ApplicationController

 def new
   @user = User.new
 end

 def edit
    @user = User.find(params[:id])
 end

 def show
     @user = User.find(params[:id])
 end

 def create
   @user = User.new(params[:user])
   if @user.save
      redirect_to @user, :notice => 'Cadastro realizado'

   else
     render :new
   end
  end      
end

继续我的show.html.erb

<p id="notice"><%=notice%></p>

<h2>Perfil: <%=@user.full_name %></h2>

    <ul>
        <li>Localização: <%= @user.location %> </li>
        <li>Bio: <%= @user.bio %></li>
   </ul>

   <%= link_to 'Editar Perfil', edit_user_path(@user) %>
   <%= link_to 'Mostrar Perfil', show_user_path(@user) %>

我的问题出在最后一行,当我尝试访问此页面时出现NomethodError,我想了解为什么,为什么我可以将其更改为@user并且页面正常工作?

1 个答案:

答案 0 :(得分:3)

尝试:

 <%= link_to 'Mostrar Perfil', user_path(@user) %>

甚至只是

 <%= link_to 'Mostrar Perfil', @user %>

要了解如何命名路线,请打开控制台并运行

rake routes