0

我正在尝试为我的应用程序的用户添加个人资料页面。

我按照 railscasts 250 & 274设置了我的用户身份验证并添加了以下内容以获取用户配置文件。

用户/show.html.erb

<div class="page-header">
  <h1><%= @user.name %> Profile</h1>
</div>

<p>
  <b>email:</b>
  <%= @user.email %>
</p>

布局/_navbar.html.erb

<%= link_to "View your Profile", user_path(user) %>

users_controller.rb

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

这会引发undefined local variable or method 'user'错误。

所以我尝试将这两行添加到我的application_controller.rb

@user = User.all

&

@user = User.all.find(params[:id])

但是这些分别返回了以下错误

undefined local variable or method `user'

&

undefined local variable or method `params'

resources :users在我的routes.rb文件中有 & 我也尝试添加get 'users/:id', :to => 'users#show', :as => 'user'但没有任何成功。

4

2 回答 2

2

转到当前登录用户的显示页面:

<%= link_to "View your Profile", current_user %>

保持原样的表演动作和路线resources :users

于 2013-04-08T09:51:35.477 回答
1

我认为问题出在您的layouts/_navbar文件中。您需要定义user.

使用助手:<%= link_to "View your Profile", user_path(current_user) %>

或者:<%= link_to "View your Profile", url_for({ :controller => 'users', :action => 'show', :id => current_person.id }) %>

于 2013-04-08T09:55:01.597 回答