NoMethodError в контроллере, неопределенная ошибка не обнаружена в моем коде - PullRequest
0 голосов
/ 23 мая 2019

У меня есть модель курса и контроллер с некоторыми атрибутами, включая изображение, которое я ранее загрузил с использованием carrierwave, и оно работало хорошо, тогда я хотел реализовать ActiveStorage для сохранения изображения на s3, но не смог, поэтому я вернулся к использованию carrierwave, но теперь я получаю "неопределенный метод" image_size "для # Вы имели в виду? image_was" я не знаю откуда и почему это вызывается. Пожалуйста помоги.

Я строго использую драгоценные камни ниже:

gem 'rails',                   '5.2.0'
gem 'bootstrap-sass',          '3.3.7'
gem 'puma',                    '3.9.1'
gem 'sass-rails',              '5.0.6'
gem 'uglifier',                '3.2.0'
gem 'coffee-rails',            '4.2.2'
gem 'jquery-rails',            '4.3.1'
gem 'turbolinks',              '5.0.1'
gem 'jbuilder',                '2.7.0'
gem 'bcrypt',                  '3.1.12'
gem 'carrierwave',             '1.2.2'
gem 'mini_magick',             '4.7.0'
gem 'aws-sdk-s3',              require: false

class Course < ApplicationRecord

  mount_uploader :image, CourseUploader
  #has_one_attached :image
  belongs_to :coordinator

  validates :name, presence: true, length: {minimum: 4}
  validates :prerequisite, presence: true, length: {minimum: 4}
  validates :description, presence: true, length: {minimum: 4}
  validate  :image_size

  validates :coordinator_id, presence: true
  has_many :votes, dependent: :destroy
  has_and_belongs_to_many :locations
  has_and_belongs_to_many :categories

end

class CourseUploader < CarrierWave::Uploader::Base
  # Include RMagick or MiniMagick support:
  # include CarrierWave::RMagick
  # include CarrierWave::MiniMagick

storage :file

  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end


  def extension_whitelist
    %w(jpg jpeg gif png)
  end


end




class CoursesController < ApplicationController

  def create

    @course = current_coordinator.courses.build(course_params)
    if @course.save
      flash[:success] = "Course created!"
      redirect_to current_coordinator
    else
      render 'new'
    end

  end


  private
  def course_params
    params.require(:course).permit(:name, :prerequisite, :description, :image, category_ids: [], location_ids: [])
  end

  def set_course
    @course = Course.find(params[:id])
  end

end



<%= form_for @course do |f| %>
  <%= render 'shared/error_courses', object: @course %>
    <div class="field">
      <%= f.label :name %>
      <%= f.text_field :name,class: 'form-control' %><br>
      <%= f.label :prerequisite %>
      <%= f.text_field :prerequisite,class: 'form-control' %><br>
      <%= f.label :description %>
      <%= f.text_area :description, size: '20x5',class: 'form-control' %><br>

      <%= f.label :category %>:
      <%= f.collection_check_boxes :category_ids, Category.all, :id, :category  %><br>

      <br>
      <%= f.label :location %>:
      <%= f.collection_check_boxes :location_ids, Location.all, :id, :location  %><br>

      <!-- <%= f.label :image %> --><br>
      <%= f.file_field :image %>

      <div class="btn-sub">
        <%= f.submit yield(:button_text), class: "btn btn-primary" %>
      </div>
    </div>
  <% end %>

ЗДЕСЬ ЖУРНАЛ:

app/controllers/courses_controller.rb:27:in `create'
Started POST "/courses" for 127.0.0.1 at 2019-05-24 00:23:52 +1000
Processing by CoursesController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"PwMJV5VdgTDulH2scefofWuA3AdtVamdTqbn6nXY5HxOJOgVlv7OjsakmXt2qqipDHOzh1FRybRB0EF10n3hlQ==", "course"=>{"name"=>"hshs", "prerequisite"=>"shsh", "description"=>"shahs", "category_ids"=>[""], "location_ids"=>[""]}, "commit"=>"Create a course"}
  Coordinator Load (0.2ms)  SELECT  "coordinators".* FROM "coordinators" WHERE "coordinators"."id" = ? LIMIT ?  [["id", 1], ["LIMIT", 1]]
  Category Load (0.1ms)  SELECT "categories".* FROM "categories" WHERE 1=0
  Location Load (0.1ms)  SELECT "locations".* FROM "locations" WHERE 1=0
   (0.1ms)  begin transaction
   (0.1ms)  rollback transaction
Completed 500 Internal Server Error in 143ms (ActiveRecord: 3.4ms)



NoMethodError (undefined method `image_size' for #<Course:0x00007f802b4fba70>
Did you mean?  image_was):

app/controllers/courses_controller.rb:27:in `create'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...