2014-02-05 62 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 –