带设计的用户配置文件页面 - 显示操作的路由

bvc*_*vcm 7 ruby-on-rails devise ruby-on-rails-4

使用设计和单独的控制器(用户)进行身份验证,这是一个单独的"显示"操作

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
Run Code Online (Sandbox Code Playgroud)

到目前为止,视图(users/show.html.erb)仅显示所访问配置文件的用户名

<%= @user.username %>
Run Code Online (Sandbox Code Playgroud)

路由还:

resources :users
Run Code Online (Sandbox Code Playgroud)

我希望这些个人资料页面可以公开访问,如果他们得到一个链接/告知地址,但也想要一个链接可供当前登录的用户访问他的个人资料.我的标题中的一个片段:

<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>
Run Code Online (Sandbox Code Playgroud)

目前,@ user就是为了阻止路由错误.我不完全确定要链接到什么,尝试了很多组合,但显然我的铁杆新手心灵缺少了我需要做的额外的事情.任何帮助深表感谢!

(Rails 4,ruby 2.0.0)

附注我最后还希望允许指向个人资料页面的链接以以下格式显示id +用户名:#{id} - #{username}(而不仅仅是用户/ 1 - > users/1 -bbvoncrumb).

Mar*_*pka 14

如果您希望将User实例link_to链接到给定用户的show页面,则只需将实例作为参数传递即可.因此,如果您想要链接到Devise中当前登录的用户配置文件,您只需要:

<li><%= link_to "Profile", current_user %></li>
Run Code Online (Sandbox Code Playgroud)

  • 天啊.我应该自己开枪.不知道为什么我错过了这个并且非常感谢你的回复.非常感激! (3认同)