Я пытаюсь запустить следующую спецификацию
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 из bannerimage, она работает, но баннер сообщается как «missing.png»
- Banner.create! (Valid_attributes) works
- Я показал только одну спецификациювыше, но проблема возникает в любой спецификации, которая включает этот пост: create,: banner => valid_attributes line
- Я удалил все ссылки на attr_accessible ... без разницы
- I 'Вы пытались переключить validate_attributes в Factory.attributes_for (: banner), с той же информацией о файле в: bannerimage
- Форма отлично работает через браузер, включая загрузку / обработку изображений
- File.exists?подтверждает, что указанный файл действительно существует.
Если у кого-нибудь есть идеи о том, почему сообщение не работает, я был бы очень признателен.Я предполагаю (и простите - я не изучал внутреннюю работу команды 'post' и, возможно, здесь отключен), что в этом вызове отсутствует какой-то параметр 'multipart' для вызова файлов (?) ...не могу найти что-нибудь через google.
Любые идеи приветствуются - я в полном замешательстве.
Контроллер является полностью неизмененным ресурсом скаффолдов Rails 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