2014-11-04 52 views
0

我想链接到我的用户另一个页面,但我有一个错误:不能链接到另一个网页的用户

RuntimeError in WelcomeController#edit 
Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id 

在我目前的网页

<%= link_to "edit", welcome_edit_path(@user) %> 

THI是我的控制器

def edit 
    user = User.find_by_id(@user.id) 
end 
在我的网页

我想链接

<%= user.id %> 

我知道我的问题是我的@user是零,但我不知道如何链接到另一个页面与我的@user 所以,请!帮我

这是我的路线文件

get "micropost/new" 

    get "user/new" 
    get "user/saved" 

    get "post/new" 
    get "post/show" 

    get "welcome/index" 
    get "welcome/sucess" 
    get "welcome/edit" 
    root :to => "welcome#index" 
    get '/users/:id', :to => 'welcome#sucess', :as => "user" 

    match '/relations', to: 'relation#create', via: 'post' 
    match '/relations/:id', to: 'relation#destroy', via: 'delete' 
    resources :users 
    resources :relations, only: [:create, :destroy] 
    resources :microposts 

    match '/login', to: 'welcome#create', via: 'post' 
    match '/logout' => 'welcome#destroy', as: :logout 
    match '/create', to: 'micropost#create', via: 'post' 
    match '/signup', to: 'user#signup', via: 'post' 
+0

你想目前编辑登录用户? – 2014-11-04 08:32:15

+0

不是我的current_user。这只是我列表中的一个用户 – mayoneQD 2014-11-04 08:35:27

+0

那么如何将这个用户的ID传递到控制器? – 2014-11-04 08:38:42

回答

2

你在edit方法的代码是没有意义的。第一件事情,你必须正确地定义您的路线:

get '/welcome/edit/:id', to: 'welcome#edit', as: 'welcome_edit' 

然后,在WelcomeController

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

和链接到这个网页:

<%= link_to 'edit', welcome_edit_path(@user) %> 
+0

我之前尝试过,但不起作用。它说“无法找到没有ID的用户” – mayoneQD 2014-11-04 08:37:20

+0

它工作!!!!!!!!!!!!!!谢谢,非常感谢你:) – mayoneQD 2014-11-04 09:05:26

相关问题