设计用户显示页面控制器无法正常工作

时间:2011-12-23 03:33:05

标签: ruby-on-rails controller devise routes show

我正在使用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"} 但是当我耙行路线时,动作节目和控制器用户都会出现。我究竟做错了什么!!! 请帮忙!!

3 个答案:

答案 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}" %>