Странное поведение при маршрутизации при отправке форм с полем Загрузка файла / Файл в Производстве - PullRequest
0 голосов
/ 12 февраля 2019

В моем приложении я использую carrierwave для загрузки изображения.

Мой CampaignsController - это обычный create action

def create
  @campaign = Campaign.new(campaign_params)

  respond_to do |format|
    if @campaign.save
      format.html { redirect_to @campaign, notice: 'Campaign was successfully created.' }
      format.json { render :show, status: :created, location: @campaign }
    else
      format.html { render :new }
      format.json { render json: @campaign.errors, status: :unprocessable_entity }
    end
  end
end

Все отлично работает в development,но в production после отправки / сохранения все идет не так.

Под этим я подразумеваю: В development при отправке формы после сохранения она переходит к localhost:3000/campaigns/38 и моя форма: action="campaigns/38"

НО

В производство при отправке формы, после сохранения, вместо перехода к example.com/campaigns/38, оно переходит к example.com/campaigns/campaigns/38 и мойформа меняется на: action="campaigns/campaigns/38".

Как вы можете видеть, что дополнительный campaigns находится в URL, и я не уверен почему.

Это мой routes.rb:

Rails.application.routes.draw do
  resources :campaigns do
    get 'changes', to: 'campaigns#deactivate_activate'
    put 'changes', to: 'campaigns#deactivate_activate'
  end

  # match '*any' => 'application#options', :via => [:options]
end

Этомой ImageUploader:

class ImageUploader < CarrierWave::Uploader::Base
  include CarrierWave::MiniMagick

  storage :file

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

  version :large do
    resize_to_limit(600, 600)
  end

Мой Campaign Модель:

class Campaign < ApplicationRecord
  mount_uploader :image, ImageUploader

Это версия моего приложения:

ruby "2.3.1"
gem 'rails', '~> 5.1.6'
carrierwave (1.3.1)

Я тестировалс разными вещами, чтобы увидеть, в чем именно заключается проблема.Я тестировал с simple_form_for, form_for и даже с удаленными частями form.

Все работает, пока = f.file_field :image там нет.когда я удаляю = f.file_field :image из моего form, все прекрасно работает во всех ENV, но когда я добавляю его обратно, его, чем Production ведет себя странно.

Любая помощь приветствуется и спасибо заранее!

...