Метод очистки / удаления Active Storage в Ruby On Rails выбрасывает NoMethodError

Возможно, что-то вроде этого примера. Он будет расширять предоставленный объект или создавать его, если он не снабжен объектами. Это деструктивный характер, если вы поставляете ключи, которые уже существуют в объекте, но вы можете изменить это, если это не то, что вы хотите. Использует ECMA5.

/*global console */
/*members split, pop, reduce, trim, forEach, log, stringify */
(function () {
    'use strict';

    function isObject(arg) {
        return arg && typeof arg === 'object';
    }

    function convertExtend(arr, obj) {
        if (!isObject(obj)) {
            obj = {};
        }

        var str = arr[0],
            last = obj,
            props,
            valProp;

        if (typeof str === 'string') {
            props = str.split('.');
            valProp = props.pop();
            props.reduce(function (nest, prop) {
                prop = prop.trim();
                last = nest[prop];
                if (!isObject(last)) {
                    nest[prop] = last = {};
                }

                return last;
            }, obj);

            last[valProp] = arr[1];
        }

        return obj;
    }

    var x = ['fum'],
        y = [
            ['foo.bar.baz', 1],
            ['foo.bar.fum', new Date()],
            ['qux.qaz', 'abc'],
            ['foshizzle', 200]
        ],
        z = ['qux.qux', null],
        record = convertExtend(x);

    y.forEach(function (yi) {
        convertExtend(yi, record);
    });

    convertExtend(z, record);
    document.body.textContent = JSON.stringify(record, function (key, value, Undefined) {
        /*jslint unparam:true */
        /*jshint unused:false */
        if (value === Undefined) {
            value = String(value);
        }

        return value;
    });
}());

0
задан project_kingz 16 January 2019 в 13:10
поделиться

2 ответа

Я думаю, что проблема в вашем изображении в цикле и маршрутах

Некоторые изменения в представлении и итерации по @job.images

Это без удаленного: true

< / blockquote>
<% if @job.images.attached? %>
  <br/>

  <div class="row">
    <% @job.images.each do |image| %>
    <div class="col-md-4">
      <div class="panel panel-default">
        <div class="panel-heading preview">
          <%= image_tag(image) %>
        </div>
        <div class="panel-body">
          <span class="pull-right">
            <%=
            link_to 'Remove', delete_image_attachment_job_url(image_id: image)
            method: :delete,
            data: {confirm: "Are you sure"} do %>
              <i class="fa fa-trash-o" aria-hidden="true"></i>
            <% end %>
          </span>
        </div>
      </div>
    </div>
    <% end %>
  </div>
<% end %>

Контроллер

  def delete_image_attachment
    @image = ActiveStorage::Attachment.find(params[:image_id])
    @image.purge
    redirect_back(fallback_location: request.referer)
  end
0
ответ дан t s 16 January 2019 в 13:10
поделиться

Поскольку вы используете блочную форму link_to, вы должны поместить текст между do / end:

        <%=
        link_to delete_image_attachment_job_url(@job.images[image]),
        remote: true,
        method: :delete,
        data: {confirm: "Are you sure"} do %>
          <i class="fa fa-trash-o" aria-hidden="true">Remove</i>
        <% end %>

Как в примере из документов :

< blockquote>

Вы также можете использовать блок, если целевую ссылку трудно уместить в параметре name. Пример ERB:

<%= link_to(@profile) do %>
  <strong><%= @profile.name %></strong> -- <span>Check it out!</span>
<% end %>
# => <a href="/profiles/1">
       <strong>David</strong> -- <span>Check it out!</span>
     </a>
0
ответ дан Paulo Belo 16 January 2019 в 13:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: