我正在使用rails 3.1.3(我相信最新版本)并且在我的应用程序中我正在使用gem Devise for user auth。为了添加用户节目(个人资料)页面,我添加了Users_Controller.rb
class UsersController < ApplicationController
before_filter :authenticate_user!
def show
@userProfile = User.find(params[:id])
@user = current_user
@title = @userProfile.name
end
end
并在routes.rb
文件中resources :users
。
我也有一个简单的app/views/users/show.html.erb
。
现在,当我手动转到localhost:3000 / users / 1时,这一切都运行得很好,但当我尝试链接到个人资料<%=link_to "My Profile", user_path(@user) %>
时(这是我的applicationcontroller.rb
重要事项)我得到一个动作控制器:异常No route matches {:action=>"show", :controller=>"users"}
但是当我耙行路线时,动作节目和控制器用户都会出现。我究竟做错了什么!!!
请帮忙!!
答案 0 :(得分:3)
而不是
<%=link_to "My Profile", user_path(@user) %>
做
<%=link_to "My Profile", @user %>
然而,在ApplicationController
中这样做似乎有点奇怪。它可能应该在视图或布局文件中。
答案 1 :(得分:1)
您应该将@user传递给您呈现此链接的视图。
答案 2 :(得分:0)
你可以尝试这种替代方案。
<%=link_to "My Profile", "/users/#{@user.id}" %>