【问题标题】:Link to User Profile Page By Username按用户名链接到用户个人资料页面
【发布时间】:2016-04-07 01:25:03
【问题描述】:

我知道这个问题已经被问过很多次了,但我似乎无法找到我正在寻找的对我有帮助的答案。所以我创建了用户的个人资料页面,它们工作得很好。当我手动输入用户 ID 时,例如 http://localhost:3000/users/3 会显示特定用户的个人资料页面。现在,我希望能够在该人登录时链接到我的标题中的当前用户个人资料页面,并希望能够在他们单击帖子上的人的用户名时链接到任何人的个人资料页面。

当我有以下代码行时,这是我从标题中得到的错误

<%= link_to "Profile", user_path %>

这些是我的路线

resources :posts
devise_for :users
resources :users, :only => [:show]

这是我的用户控制器

class UsersController < ApplicationController
 def show
  @user = User.find(params[:id])
  @user_posts = @user.posts
 end
end

这是我在帖子上有用户名的部分

<div class="panel-body">

    <p><strong><%= @post.user.username if @post.user %></strong></p>
    <p><%= @post.description %></p>
    <% if @post.user == current_user %>
     <%= link_to 'Edit', edit_post_path(@post) %>
    <% end %>

</div>

如果你们需要更多信息,我很乐意写下更多信息。同样,我想要做的是能够在他们登录时在标题中拥有指向当前用户个人资料页面的链接,并能够单击任何帖子上的用户名以查看该用户的个人资料。

这是我的路线

【问题讨论】:

  • 你能显示 rake:routes
  • 你希望 show 方法使用用户名而不是 ID
  • 我该怎么做呢?对不起,我没有用 Ruby 进阶
  • 在模型def to_param username end中添加这个方法并尝试在show方法控制器中的User.find_by_username

标签: ruby-on-rails-4 user-profile


【解决方案1】:

它需要该路由的 id

<%= link_to "Profile", user_path(current_user) %>

【讨论】:

  • 当我添加它时,我会在 Posts#index 未定义局部变量或方法“用户”中得到一个 NameError
  • 编辑了答案。应该使用 current_user。
  • @AwakeningByte 他需要带有用户名而不是 id 的路由
  • 刚刚又试了一次,现在可以了。非常感谢!
  • 因此标题中的链接完美运行。谢谢你。现在我想知道我是否点击了另一个用户的帖子,我想点击他的用户名并直接进入他的页面。我会为该链接使用什么
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-09
  • 1970-01-01
  • 2012-01-20
  • 2012-09-06
  • 2018-09-27
  • 2020-01-23
  • 1970-01-01
相关资源
最近更新 更多