ruby on rails - скрепка - nohandleerror - обработчик не найден для - PullRequest
0 голосов
/ 24 октября 2018

У меня есть приложение, которое я использую для публикации материалов.Я хочу, чтобы пользователь мог написать мне отзыв, и чтобы он также мог загрузить скриншот.

Я сам написал модель, контроллер и прочее.

<div id="feedback-message" class="feedback-message" style="color: green;">Feedback sent</div>
<span class="label label-info">Name</span><%= text_field_tag :name, "", class: 'form-control' %>
<span class="label label-info">Topic</span>
<select name="topic" id="topic" class="form-control">
  <option value="Bug">Bug</option>
  <option value="Suggestion">Suggestion</option>
  <option value="Other">Other</option>
</select>
<span class="label label-info">Screenshot</span>
<label class="image-upload form-control">
  <i class="fa fa-cloud-download" id="upload_button"></i>
  <input id="upload_input" type="file" name="feedback[screenshot]"/>
</label>
<span class="label label-info">Message</span> <%= text_area_tag :message, "", class: 'form-control', rows: 3 %>
<hr>
<%= submit_tag 'Submit', id: 'submit-feedback', class: 'btn btn-success center' %>

<script>
    $(document).ready(function () {
        var msg = document.getElementById('feedback-message');
        var submit = $('#submit-feedback');
        submit.click(function () {
            msg.style.display = 'block';
            submit.prop('disabled', true);
            setTimeout(function () {
                submit.prop('disabled', false);
                msg.style.display = 'none';
            }, 5000);
            $.ajax({
                url: '/feedback',
                type: 'POST',
                data: {
                    authenticity_token: $('[name="authenticity_token"]').val(),
                    name: $('#name').val(),
                    message: $('#message').val(),
                    topic: $('#topic').val(),
                    screenshot: $('#upload_input').val(),
                },
            });
        });
    });
</script>

Я отображаю его, нажимая на кнопку (выглядит как модальный).

Работал хорошо, прежде чем я попытался реализовать скриншот.Следовал руководству по установке из скрепки и при отправке формы я получаю

Paperclip::AdapterRegistry::NoHandlerError - No handler found for "C:\\fakepath\\wahtdihdijustread.jpeg":
  app/controllers/feedback_controller.rb:6:in `create'

Редактировать:

class Feedback < ApplicationRecord
  validates :name, presence: true, length: {minimum: 3}
  validates :message, presence: true, length: {minimum: 5}
  validates :topic, length: {minimum: 3}

  has_attached_file :screenshot,
                    path: '/feedback/:filename',
                    url: '/feedback/:filename'
  validates_attachment_content_type :screenshot, content_type: /^image\/(jpg|jpeg|png)$/, message: 'file type is not allowed (only jpg/jpeg/png images)'
end

Редактировать2:

class FeedbackController < ApplicationController
  def index;
  end

  def create
    Feedback.create name: params[:name], message: params[:message], topic: params[:topic], screenshot: params[:screenshot]
    authorize Feedback
  end
end
...