User
has_many
emails
およびEmail
の属性はmd5sum
です。与えられたユーザーのために@user
user#show
にGravatarイメージを表示したいと思います。has_many関連の最初の属性を取得する方法は?
テンプレートに次のコードは動作しません:
<img src="http://www.gravatar.com/avatar/<%= @user.emails.first.md5sum %>" />
は、どのように私はテンプレートに@user
ための最初のemail
のmd5sum
を得ることができますか?
ウェブ/コントローラ/ 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
[...]
ウェブ/モデル/ 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
[...]
ウェブ/モデル/ email.ex
defmodule MyApp.Email do
use MyApp.Web, :model
schema "emails" do
field :value, :string
field :md5sum, :string
belongs_to :user, MyApp.User
[...]