2014-02-05 26 views
0

我在Rails的一个初学者,即时通讯之后从一本书的代码,我想的东西,看看它打破/作品,反正我的继承人UserControllers classUserControllerRuby on Rails的 - 在用户#show_user_path NoMethodError显示

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: <%[email protected]_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和页面的作品?

回答

3

尝试:

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

甚至只是

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

为了看如何命名的路线,打开控制台并运行

rake routes 
+0

我尝试了最后一行它工作正常,我只是不知道为什么,doenst更有意义,如:method_user_path? –

+0

请参阅Rails指南的第2.2节和第2.3节:http://guides.rubyonrails.org/routing.html –