Rails 3 объединяет две переменные - PullRequest
6 голосов
/ 24 сентября 2010

У меня есть следующий код, который мне нужно обновить ...

<% @users.each do |user| %>
  <tr>
    <td><%= link_to user.fname, user %></td>
  </tr>
<% end %>

Я хочу узнать, как его обновить, поэтому вместо того, чтобы просто показывать fname, он показывает fname + lname

поэтому для такой записи, как Джеймс Бонд, он показывает Джеймса Бонда и связывает его с пользователем в Rails.

спасибо

1 Ответ

18 голосов
/ 24 сентября 2010

Вы можете присоединить строку прямо в ERB:

<%= link_to user.fname + " " + user.lname, user %>
<!-- or, slightly better: avoids problems with nil values -->
<%= link_to "#{user.fname} #{user.lname}", user %>
<!-- or, even better -->
<%= link_to [user.fname, user.lname].join(" "), user %>

Или вы можете переместить эту уродливую логику в вспомогательный метод, например, в app / helpers / users_helper.rb :

module UsersHelper
  def full_name(user)
    [user.fname, user.lname].join(" ")
  end
end

<%= link_to full_name(user), user %>

Или (это то, что я хотел бы сделать), вы можете добавить в модель метод full_name :

class User < ActiveRecord::Base
  def full_name
    [fname, lname].join(" ")
  end
end

<%= link_to user.full_name, user %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...