【问题标题】:Link to user profile链接到用户个人资料
【发布时间】:2014-10-09 10:01:27
【问题描述】:

我正在尝试创建一个链接,当人们查看他们的照片时,通过点击他们的名字将他们引导到用户个人资料页面。然而,代码行在下面,我不确定如何将其转换为将人们引导至用户个人资料的链接。现在,用户的帖子显示他们的姓名与他们的帖子相关联。希望这是有道理的提前谢谢。

<p><strong><%= @post.user.name if @post.user %></strong></p>

用户个人资料页面的路径是 users_path。

Post/Show.html

<div class="row">
    <div class="col-md-offset-4 col-med-8">
        <div class="panel panel-default">
        <div class="panel-heading center">

        <% if @post.image.url %>
            <%= image_tag @post.image.url(:medium) %>

        <% elsif @post.video.url %>
            <%= video_tag @post.video.url(:medium), controls: true, type: "video/mp4" %>
        <% end %>

        </div>
        <div class="panel-body">
        <p><%= @post.description %></p>
        <p><strong><%= @post.user.name if @post.user %></strong></p>

        <% if @post.user == current_user %>
            <%= link_to edit_post_path(@post) do %>
            <span class="glyphicon glyphicon-edit"></span>
            Edit
          <% end %>
        <% end %>
        <%= link_to 'Back', posts_path %>
        </div>
</div>

【问题讨论】:

  • 请注意,then 很少在 Ruby 中使用。
  • @tadman 谢谢你提供的信息。我删除了它。

标签: ruby-on-rails ruby-on-rails-4 routes


【解决方案1】:

我是这样做的...

【讨论】:

  • 为了在指向该用户个人资料页面的链接中添加用户名,我这样做了。
【解决方案2】:

考虑到user_path 是用户个人资料的路径

<p>
  <strong>
    <%= link_to(user.name, user_path(user)) if user = @post.user %>
  </strong>
</p>

【讨论】:

  • @post.user 捕获到一个变量中,然后使用该变量从效率的角度来看是一件好事。这可以通过将if 分解为传统形式而不是尾随形式来改进一点,这里的操作顺序颠倒了(首先评估右侧,然后有条件地评估左侧),但这是风格问题。跨度>
猜你喜欢
  • 2012-01-20
  • 2012-09-06
  • 2018-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-29
  • 2011-09-14
  • 2020-09-17
相关资源
最近更新 更多