6 Stimmen

Rails 3 Kombinieren Sie zwei Variablen

Ich habe den folgenden Code, den ich aktualisieren muss...

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

Ich möchte lernen, wie ich das aktualisieren kann, damit nicht nur der fname, sondern fname + lname angezeigt wird.

Für einen Datensatz wie James Bond wird also James Bond angezeigt und mit dem Benutzer in Rails verknüpft.

danke

19voto

Andrew Vit Punkte 18653

Sie können die Zeichenfolge direkt im ERB verbinden:

<%= 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 %>

Oder Sie können diese hässliche Logik in eine Hilfsmethode verschieben, z. B. in app/helpers/users_helper.rb :

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

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

Oder (so würde ich es machen) Sie können eine voller_name Methode im Modell:

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

<%= link_to user.full_name, user %>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X