使用设备和单独的 Controller (用户)进行身份验证,这是一个“显示”操作
class UsersController < ApplicationController
#before_filter :authenticate_user!
def show
@user = User.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @user }
end
end
end
到目前为止, View (users/show.html.erb) 只显示访问的配置文件的用户名
<%= @user.username %>
路由也:
resources :users
我希望这些个人资料页面可以公开访问,如果他们获得指向它的链接/告诉地址,但也希望当前登录的用户可以访问他的个人资料的链接。我的标题中的一个片段:
<li><%= link_to "Profile", @user %></li>
<li><%= link_to "Settings", edit_user_registration_path %></li>
<li><%= link_to "Logout", destroy_user_session_path, method: "delete" %></li>
目前,@user 只是为了阻止路由错误。我不完全确定要链接到什么,已经尝试了很多组合,但显然我的 Rails 新手头脑缺少一些我需要做的额外事情。任何帮助深表感谢!
(Rails 4, ruby 2.0.0)
旁注我还希望最终允许指向个人资料页面的链接以以下格式显示 id + 用户名:#{id}-#{username}(而不仅仅是 users/1 --> users/1 -bbvoncrumb)。
最佳答案
您只需要通过 User
实例作为 link_to
的参数如果您希望它链接到给定用户的 show
页。因此,如果您想在 Devise 中链接到当前登录用户的个人资料,您只需要:
<li><%= link_to "Profile", current_user %></li>
关于ruby-on-rails - 带有设计的用户个人资料页面 - 显示操作的路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17449573/