вариант делегирован во вложении, но вложение равно нулю - PullRequest
0 голосов
/ 17 июня 2019

Я работаю над приложением Rails 6, использующим ActiveStorage.Я использую devise для аутентификации, которая требует на странице sign_up адрес электронной почты и пароль.После успешной регистрации я хотел бы перенаправить на редактирование профиля.Пользователю не обязательно загружать аватар или некоторые другие поля.Они могут быть оставлены пустыми, если это выбор пользователя.

ActionView::Template::Error (variant delegated to attachment, but attachment is nil):
    3: 
    4: <p><%= @user.full_name %><p>
    5: <p>
    6:   <%= image_tag @user.avatar.variant(resize_to_limit: [100, 100])%>
    7: <p>
    8: <p><%= @user.city %><p>
    9: <p><%= @user.bio %><p>

Я получаю следующую ошибку, но я хотел бы, чтобы эти поля были необязательными, как я могу добиться этого?users / edit.html.erb

  <%= form_for @user do |f| %>
    <div class="form-group">
      <%= f.label :avatar %>
      <%= f.file_field :avatar, as: :file, class: "form-control" %>
    </div>

    <div class="form-group">
      <%= f.label :full_name, 'Full Name' %>
      <%= f.text_field :full_name, autofocus: true, class: "form-control" %>
    </div>

    <div class="form-group">
      <%= f.label :city, 'City' %>
      <%= f.text_field :city, class: "form-control" %>
    </div>

    <div class="form-group">
      <%= f.label :bio, 'Bio'%>
        <p> Why did you join ArtsySpace?
        What should other people here know about you?
        </p>
      <%= f.text_field :bio, class: "form-control"%>
    </div>

    <div class="form-group">
      <%= f.submit "Edit profile", class: "btn btn-primary" %>
    </div>
  <% end %>

У меня есть следующая форма.Хотелось бы, чтобы при загрузке аватара не было сброшено ни одной ошибки на странице show.html.erb.

1 Ответ

1 голос
/ 17 июня 2019

Вы проверяете это с помощью attached?

<% if @user.avatar.attached? %>
  <%= image_tag @user.avatar.variant(resize_to_limit: [100, 100])%>
<% end %>
...