Rspec에서 attr_accessible과 함께 전달할 rspec 컨트롤러 테스트를 가져 오는 중에 문제가 발생하지만 콘솔에서는 발생하지 않습니다.Rspec & Paperclip : attr_accessible로 손상 되었습니까?
post :create, :banner => valid_attributes
실패,하지만
Banner.create!(valid_attributes) is accepted.
나는 배너 모델에서 attr_accessible을 가지고가는 경우에, 또는 나는 validates_attachment_presence을 가지고 : bannerimage, 그것은 작동합니다. bannerimage_attributes와 paperclip 생성 : bannerimage 열을 내 attr_accessible- 기쁨없이 추가하려고 시도했습니다. 다른 클립 클립 유효성 검사기 (내용 유형, 크기)를 꺼내려고했지만 여전히 기쁨이 없습니다. 어떤 제안이라도 매우 고맙게 생각합니다. 저는 완전히 실패했습니다.
관련 코드
은 여기에 있습니다 : RSpec에 시험의관련 비트 :
def valid_attributes
demo_image = File.open(File.join(Rails.root, "spec", "samples", "laptop1.jpg"))
{
:name => 'Test Spec Banner',
:bannerimage => demo_image
}
end
describe "POST create" do
describe "with valid params" do
it "creates a new Banner" do
expect {
post :create, :banner => valid_attributes
}.to change(Banner, :count).by(1)
end
end
모델 :
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
편집 : 배너 사이트를 통해 만들 수 있습니다.
아래의 관련 컨트롤러 코드. 전/후 통화가 없으며 표준 안심할 수 있습니다.
def create
@banner = Banner.new(params[:banner])
if @banner.save
redirect_to admin_banner_url(@banner), notice: 'Banner was successfully created.'
else
render action: "new"
end
end
컨트롤러 코드를 게시하지 않았습니다. 당신이 게시 한 스펙이이를 통과하므로 문제가있을 수 있습니다. 또한 웹 인터페이스에서 표준 양식을 통해 배너를 만들 수 있는지 여부에 대해서도 언급하지 않았습니다. –
둘 다 위에 추가되었습니다. – PlankTon