ruby-on-rails - 变体委托(delegate)给附件,但附件为零

标签 ruby-on-rails rails-activestorage

我正在使用 ActiveStorage 开发 Rails 6 应用程序。我正在使用设计进行身份验证,这需要在注册页面上提供电子邮件和密码。成功注册后,我想重定向到编辑个人资料。用户不一定需要上传头像或其他一些字段。如果这是用户的选择,这些可以留空。

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>

我收到以下错误,但我希望这些字段是可选的,我该如何实现?
用户/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 中抛出 nil 错误。页。

最佳答案

您可以通过 attached? 进行检查

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

关于ruby-on-rails - 变体委托(delegate)给附件,但附件为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56623149/

相关文章:

ruby-on-rails - 事件存储 : displaying video in video_tag

ruby-on-rails - 从SQLite迁移后,为什么我的应用程序不能修改开发postgresql数据库?

ruby-on-rails - monit: 控制文件 '/etc/monit/monitrc' 必须归你所有

ruby-on-rails - 将 Carrierwave 迁移到 ActiveStorage

ruby-on-rails - 显示带有表单错误的事件存储验证错误

ruby-on-rails - rails ActiveStorage的blob表中的校验和是如何计算的

ruby-on-rails - Rails 5.2 API ActiveStorage 如何获取多图像的 URL 路径?

mysql - ActiveRecord index_by 重复键的优先级

ruby-on-rails - Mongoid 和 counter_cache 列

ruby-on-rails - Ruby On Rails 5.2 和多个数据库