NameError в PortfoliosController # index неинициализированная константа Portfolio :: PortfolioUploader - PullRequest
0 голосов
/ 23 сентября 2018

Это мой файл portfolio.rb. У меня возникла проблема с этим кодом, если он выделен серым цветом: mount_uploader: thumb_image, PortfolioUploader mount_uploader: main_image, PortfolioUploader, эти две строки, после чего у меня есть доступ к моей странице портфолио с моими заполнителями и моим портфелемсемя, со всей информацией.Когда снимаю пометки с этих двух строк кода, у меня заголовок этого поста появляется как ошибка.Я перепробовал все, чтобы решить это.без успеха.

  class Portfolio < ApplicationRecord
  has_many :technologies
  accepts_nested_attributes_for :technologies,
                                reject_if: lambda { |attrs| attrs['name'].blank? }

  include Placeholder
  validates_presence_of :title, :body, :main_image, :thumb_image

  mount_uploader :thumb_image, PortfolioUploader
  mount_uploader :main_image, PortfolioUploader

  def self.angular
    where(subtitle: 'Angular')
  end

  def self.by_position
    order("position ASC")
  end

  scope :ruby_on_rails_portfolio_items, -> { where(subtitle: 'Ruby on Rails') }

  after_initialize :set_defaults

  def set_defaults
    self.main_image ||= Placeholder.image_generator(height: '600', width: '400')
    self.thumb_image ||= Placeholder.image_generator(height: '350', width: '200')
  end
end

Эта другая часть моего кода - мой файл _portfolio_item.erb

 <div class="card" data-id="<%= portfolio_item.id %>">
    <%= image_tag portfolio_item.thumb_image unless portfolio_item.thumb_image.nil? %>
  <p class="card-text">
    <span><%= link_to portfolio_item.title, portfolio_show_path(portfolio_item) %></span> <%= portfolio_item.subtitle %>
  </p>
</div>

Мой портфель_uploader.rb:

class PortfolioUploader < CarrierWave::Uploader::Base


  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

Мой _portfolio_item_html.erb

<div class="card" data-id="<%= portfolio_item.id %>">
    <%= image_tag portfolio_item.thumb_image unless portfolio_item.thumb_image.nil? %>
  <p class="card-text">
    <span><%= link_to portfolio_item.title, portfolio_show_path(portfolio_item) %></span> <%= portfolio_item.subtitle %>
  </p>
</div>

Любая другая информация, которую я должен предоставить для любой помощи?Спасибо!

1 Ответ

0 голосов
/ 23 сентября 2018

Вы проверили, правильно ли установлен carrierwave gem?Проверьте с помощью команды:

bundle show carrierwave

Если она установлена, но все еще не работает, вам, возможно, придется добавить /app/uploaders в путь autoload_path, чтобы загрузчик был «виден».

Проверьте это выпуск .

...