ruby-on-rails - 带有设计的用户个人资料页面 - 显示操作的路由

标签 ruby-on-rails devise ruby-on-rails-4

使用设备和单独的 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/

相关文章:

ruby-on-rails - Rails 4 和 Devise : Devise not saving new information (First Name, 姓氏,个人资料名称)

ruby-on-rails - 如何删除重复的验证错误

javascript - cocoon 在 Rails 中加载新的嵌套表单后如何执行 JavaScript?

ruby-on-rails - 使用 Rails gem 代替供应商/rails 有什么好处?

ruby-on-rails - 如何将 rails 4.0 更新到 rails 4.1

mysql - 使用 Rails 创建类似电子表格的表单

ruby-on-rails - Ruby with_advisory_lock 多线程测试间歇性失败

ruby-on-rails - Devise登录时如何传参

ruby-on-rails - Rails 预览更新关联而不保存到数据库

mysql - 如何检查用户是否存在于数据库中