红宝石在轨道上-回形针-nohandleerror-未找到处理程序

时间:2018-10-24 07:58:50

标签: ruby-on-rails paperclip

我有一个用于发布内容的应用程序。我希望用户能够向我写反馈,并希望他们也能够上传屏幕截图。

我自己写了一个模型,控制器和东西。

<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

Edit2:

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

0 个答案:

没有答案