I appreciate the discussion on the pros and cons of exporting to csv,
however my question was more to do with what the expected behaviour of
respond_with is when the request format is csv.

I would have thought that since the object I am passing to
respond_with has a to_csv method that it wouldn't also need a template
to return a response, much like a json, xml or yaml request.  Is this
not the expected behaviour?  Maybe a bug in rails, or just something
that could do with some more documentation?

>From ActionController::Responder

  # When a request comes in, for example for an XML response, three
steps happen:
  #
  #   1) the responder searches for a template at people/index.xml;
  #
  #   2) if the template is not available, it will invoke
<code>#to_xml</code> on the given resource;
  #
  #   3) if the responder does not <code>respond_to :to_xml</code>,
call <code>#to_format</code> on it.

On Mar 7, 1:43 am, Julian Leviston <[email protected]> wrote:
> I agree with you, though I find it amusing when people export things to csv 
> just to run totals. So, it's important to work out just why they want it in 
> csv
>
> Blog:http://random8.zenunit.com/
> Twitter:http://twitter.com/random8r
> Learn:http://sensei.zenunit.com/
> New video up now athttp://sensei.zenunit.com/real fastcgi rails deploy 
> process! Check it out now!
>
> On 07/03/2011, at 12:18 AM, Adam Solove <[email protected]> wrote:
>
>
>
>
>
>
>
> > I'd like to strongly disagree. While csv is not a great way to send
> > objects back and forth, it is a fantastic way to give reports to
> > users, since they can play around with them in Excel.
>
> > On Mar 5, 9:03 am, marco <[email protected]> wrote:
> >> All right, but, before, why would you do that? I think if you really
> >> need to use csv (eg. some legacy system), you would rather want to
> >> read from the csv file, turn it into object and serialize it with
> >> JSON. In the other end you'd do the opposit. I don't think csv is a
> >> good format to respond with, just a persistency format, very limited
> >> by the way.
>
> >> On Mar 4, 1:22 pm, olivernn <[email protected]> wrote:
>
> >>> In my controller I have an instance of a custom report class, the
> >>> instance responds to to_csv, which returns a csv string.  I was hoping
> >>> to be able to use respond_with, in the same way I would if I wanted a
> >>> json representation of this object.  Instead I see an error because
> >>> Rails is expecting there to be a template.
>
> >>> ActionView::MissingTemplate (Missing template admin/reports/trips with
> >>> {:formats=>[:csv], :handlers=>[:erb, :builder, :rjs, :rhtml, :rxml], 
> >>> :locale=>[:en, :en]}
> >>> in view paths
>
> >>> Is this the correct behaviour, I had a brief look through the rails
> >>> responder code and it looked to me like it should first try and render
> >>> a template, then if it can't find one try calling to_#{format}.
>
> >>> A sample of my code is in this gisthttps://gist.github.com/854903
>
> > --
> > You received this message because you are subscribed to the Google Groups 
> > "Ruby on Rails: Talk" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to 
> > [email protected].
> > For more options, visit this group 
> > athttp://groups.google.com/group/rubyonrails-talk?hl=en.

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to