[rspec-users] rspec doesnt recognize a custom mime type

Phillip Koebbe phillipkoebbe at gmail.com
Thu Apr 29 09:10:52 EDT 2010

  On 2010-04-29 7:40 AM, jollyroger wrote:
> Ok,
> fixed it, in a nutshell:
> Doesnt work:
> get :new, :format =>  :lightbox
> Works:
> get :new, :format =>  'lightbox'
> What was really confusing was that in BOTH cases the same URL appeared
> in the log.
> Here is my turn on what happened:
> Internally - when rails sees a mime-type / format - rails
> distinguishes between a string and a symbol, saying that when using
> something like
> respond_to do |format|
>    format.lightbox {}
> end
> "lightbox" is expected to be a string.
> When doing a normal request via a browser I passed in the format in
> the URL, so as a string.
> When running a spec apparently this is passed directly the way I wrote
> it, so as a symbol.
> That's why one and the same URL worked in the browser, but not in my
> spec.
> Does this sound plausible?

Perfectly. I struggled with this a couple of months ago doing something 

get :show, {:id => 1}

and whatever it was in my controller wasn't expecting an integer, so I 
had to change it to:

get :show, {:id => '1'}

and it was fine. As I dug into it, I noticed that the params hash in 
controllers has everything as strings, and then the light bulb went on 
in my head. Since then, I've paid more attention to what the params hash 
in my specs looks like. And I'm sure you will, too :)

> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users

More information about the rspec-users mailing list