私は、画像サポートを追加したモデルのクラッド部分に取り組んでいます。モデルを編集している場合は、理想的には画像を表示したいと思います。
<%= Logo.url({@company.logo, @company}, :thumb) %>
問題は、新しいアクションに会社がまだあるため、company変数は編集アクションでのみ使用できることです。そのため、@ companyが設定されているかどうかを確認する必要があります。
<%= unless @company do %>
<%= Logo.url({@company.logo, @company}, :thumb) %>
<% end %>
問題は、これにより次のエラーが発生することです。
"割り当て@companyはeexテンプレートでは使用できません。使用可能な割り当て:[:action、:changeset]"
Is_nilで試しましたが、同じエラーです。
[〜#〜] edit [〜#〜]以前 Phoenix 0.14.@company
はnilを返します設定されていない場合。割り当てが明示的(暗黙的ではなく明示的)になるように、raiseに変更されました。
@company
またはassigns.company
のいずれかを使用すると、エラーが発生します。ただし、assigns[:company]
を使用する場合、値が設定されていないとnilを返します。
<%= if assigns[:company] do %>
<%= Logo.url({@company.logo, @company}, :thumb) %>
<% end %>
ネストされたテンプレートを使用している場合は、これもパススルーする必要があることに注意してください。
<h1>New thing</h1>
<%= render "form.html", changeset: @changeset,
action: thing_path(@conn, :create),
company: assigns[:company] %>