User
has_many
emails
und Email
hat ein Attribut md5sum
. Für einen bestimmten Benutzer @user
möchte ich das Gravatar Bild in user#show
anzeigen.Wie bekomme ich ein Attribut vom ersten einer has_many-Assoziation?
Der folgende Code in der Vorlage nicht funktioniert:
<img src="http://www.gravatar.com/avatar/<%= @user.emails.first.md5sum %>" />
Wie kann ich die md5sum
der ersten email
für @user
in der Vorlage erhalten?
web/Controller/user_controller.ex
[...]
def show(conn, %{"id" => id}) do
user = Repo.get!(User, id) |> Repo.preload([:emails])
conn
|> assign(:user, user)
|> render("show.html")
end
[...]
Web/Modelle/user.ex
defmodule MyApp.User do
use MyApp.Web, :model
use Arc.Ecto.Model
schema "users" do
field :first_name, :string
field :last_name, :string
has_many :emails, MyApp.Email
[...]
Web/Modelle/email.ex
defmodule MyApp.Email do
use MyApp.Web, :model
schema "emails" do
field :value, :string
field :md5sum, :string
belongs_to :user, MyApp.User
[...]