Команда Rails 'Post' в контроллерах RSPEC: файлы не проходя через. (Есть ли настройка мультипартаторов?)

Я пытаюсь запустить следующую спецификацию

describe "POST create" do
  describe "with valid params" do
    it "redirects to the created banner" do
      post :create, :banner => valid_attributes
      response.should redirect_to(admin_banner_url(Banner.last))
    end
  end
end


def valid_attributes
  demo_image = File.open(File.join(Rails.root, "spec", "samples", "laptop1.jpg"))
  {
    :name => 'Test Spec Banner',
    :bannerimage => demo_image
  }
end

Создание не соответствует проверке Validates_Presence_of: BannerImage - я сузил его следующим образом:

  • Если я вознаграждаю Validates_Presence_of Работает, но баннер сообщается как «FOURY.PNG»
  • BANNER. Create! (Valid_attributes) работает
  • Я показал только один спецификацию выше, но проблема возникает на любой спецификации, которая включает в себя этот пост: create,: Banner => Line_attribute => Line_attribute
  • Я вывел все ссылки на attr_accessible ... Нет разницы
  • Я попробовал переключение Validate_attributes на Factory.attributes_for (: Banner), с той же информацией о файле в: Форма BannerImage
  • работает просто отлично через браузер, включая загрузку / обработку изображений
  • File.exists? Подтверждает ссылок файл действительно там.

Если у кого-то есть какие-либо идеи по поводу того, почему пост не удается, я был бы очень признательным. Я предполагаю, что Pardon - я не смотрел в внутреннюю работу команды «Post» и может быть здесь), что не хватает своего рода «мультипартный» параметр на этом вызове, чтобы принять файлы (?) .. . Должен не найти ничего через Google.

Любые идеи оценили - я полностью тупик.

Контроллер - это полностью немодифицированные рельсы 3.1 Ресурс эсмых. Модель ниже.

class Banner < ActiveRecord::Base
  # attr_accessible :name, :url, :bannerimage

  has_attached_file :bannerimage, :styles => { :full => "960x", :thumb => "100x" }

  validates_attachment_content_type :bannerimage, :content_type => [ 'image/jpg', 'image/jpeg', 'image/gif', 'image/png'], :message => 'file must be a gif, jpeg or png image'

  validates_attachment_size :bannerimage, :less_than => 3.megabytes

  validates_presence_of :name
  validates_attachment_presence :bannerimage
  validates_uniqueness_of :name

  has_many :pages, :dependent => :nullify

  def to_s
    name
  end
end
6
задан PlankTon 2 September 2011 в 10:57
поделиться