Ruby on rails 设计用户显示页面控制器不工作
我使用的是rails 3.1.3(我相信是最新版本),在我的应用程序中,我使用的是gem Desive for user auth。为了添加一个用户显示(配置文件)页面,我添加了一个Ruby on rails 设计用户显示页面控制器不工作,ruby-on-rails,controller,devise,routes,show,Ruby On Rails,Controller,Devise,Routes,Show,我使用的是rails 3.1.3(我相信是最新版本),在我的应用程序中,我使用的是gem Desive for user auth。为了添加一个用户显示(配置文件)页面,我添加了一个Users\u Controller.rb class UsersController < ApplicationController before_filter :authenticate_user! def show @userProfile = User.find(params[:id]
Users\u Controller.rb
class UsersController < ApplicationController
before_filter :authenticate_user!
def show
@userProfile = User.find(params[:id])
@user = current_user
@title = @userProfile.name
end
end
class UsersController
在routes.rb
文件中,我有resources:users
。
我还有一个简单的app/views/users/show.html.erb
。
现在,当我手动转到localhost:3000/users/1时,这一切都很好,但当我尝试链接到配置文件
(这在我的applicationcontroller.rb
中,以防万一)时,我得到了一个动作控制器:异常没有路由匹配{:动作=>“显示”,:控制器=>“用户”}
但当我搜索路线时,动作秀和控制器用户就会出现。我做错了什么!!!
请帮忙 您应该将@user传递给呈现此链接的视图。您应该将@user传递给呈现此链接的视图。您可以尝试此替代方法
<%=link_to "My Profile", "/users/#{@user.id}" %>
您可以尝试此备选方案
<%=link_to "My Profile", "/users/#{@user.id}" %>
而不是
<%=link_to "My Profile", user_path(@user) %>
做
然而,在ApplicationController
中这样做似乎有点奇怪。它可能位于视图或布局文件中。而不是
<%=link_to "My Profile", user_path(@user) %>
做
然而,在
ApplicationController
中这样做似乎有点奇怪。它可能位于视图或布局文件中。我在应用程序控制器中呈现此链接。我应该将其传递给控制器吗?我在应用程序控制器中呈现此链接。我应该把它交给控制器吗?啊,我知道了。不是@user,而是current_userah,我知道了。它应该是当前用户,而不是@user