我正在尝试为我的应用的用户添加个人资料页面。
我关注了railscast 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'
我的 routes.rb 文件中有resources :users
个文件&amp;我也尝试添加get 'users/:id', :to => 'users#show', :as => 'user'
但没有任何成功。
答案 0 :(得分:2)
转到当前登录用户的显示页面:
<%= link_to "View your Profile", current_user %>
保持show动作不变,路线只保留resources :users
答案 1 :(得分: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 }) %>