Forum: Ruby on Rails 2 button_to functions for file downloads

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Chris H. (Guest)
on 2009-02-12 05:37
(Received via mailing list)
I have 2 button_to functions that download 2 different files.  the
first one acts like a submit and the second on actually does downlaod
the file.  Does anyone know what would cause that?

<%= button_to 'Download PCCIS file',   :action => 'downloadpccis' %>
<%= button_to 'Download CIS file',   :action => 'downloadcis' %>
Chris H. (Guest)
on 2009-02-13 03:29
(Received via mailing list)
Anyone have any idea why one button does a submit and the other does a
file download?
bill walton (Guest)
on 2009-02-13 05:25
(Received via mailing list)
On Thu, 2009-02-12 at 17:29 -0800, Me wrote:
> Anyone have any idea why one button does a submit and
> the other does a file download?

In general, element behavior in any page is a function of the browser
parser's ability to make sense of the code we feed it.  Post your code
and we might be able to help.

Best regards,
Bill
Chris H. (Guest)
on 2009-02-13 05:46
(Received via mailing list)
Application.rhtml:
<% form_tag( {:action => 'mltn6p'}  ) do -%>
<div id="page">
    <div id="header">
        <h1>Wendia Site entry Program</h1>
    </div>
    <div id="menu">
        <fieldset>
            <legend>Select your Shelf</legend>
            <%= select(:node, :id, $shelves,{:prompt =>'Select
Equipment'},{
:onchange => remote_function(:url => { :action => "gotoshelf"})} ) %>
        </fieldset><br />
        <%= render :partial => 'sitedata' %>
        <fieldset id="downloads" style="display: none">
            <legend>Download POB Files</legend>
            <%= button_to 'Download CIS file',         :action =>
'downloadcis' %>
            <%= button_to 'Download PCCIS file',     :action =>
'downloadpccis' %>
        </fieldset>
    </div>

    <div id="content">
        <div id="notification"> </div>
            <%= yield %>
    </div>
</div>
<% end %>

controller:
def downloadcis
        send_file("#{$site.upcase}_CIS.csv", :type => 'text/plain',
:disposition => 'attachment')
  end


    def downloadpccis
        send_file("#{$site.upcase}_PCCIS.csv", :type => 'text/plain',
:disposition => 'attachment')
    end
Chris H. (Guest)
on 2009-02-13 06:27
(Received via mailing list)
For some reason the first button is giving me this for a response:
try {
$("notification").update("<h1 style='display: inline' class='mes'>Site
123 was built</h1>");
$("downloads").show();
} catch (e) { alert('RJS error:\n\n' + e.toString()); alert('$
(\"notification\").update(\"<h1 style=\'display: inline\' class=\'mes
\'>Site 123 was built</h1>\");\n$(\"downloads\").show();'); throw e }
Chris H. (Guest)
on 2009-02-14 02:22
(Received via mailing list)
Anyone have any ideas why the second button works but the first button
is giving me the above error?
Chris H. (Guest)
on 2009-02-14 19:55
(Received via mailing list)
OK Well this must be a bug I guess but I managed to get it to work.

For some reason the first one was trying to give the js response to
the action.  So for the hey of it I used 3 button_to's and the bottom
two worked while the first one was giving me the same response.

<div style="display: none;"><%= button_to 'Download PCCIS file',
  :action => 'downloadpccis' %></div>
<%= button_to 'Download PCCIS file',   :action => 'downloadcis' %>
<%= button_to 'Download PCCIS file',   :action => 'downloadpccis' %>
Frederick C. (Guest)
on 2009-02-14 19:59
(Received via mailing list)
On Feb 14, 5:54 pm, Me <removed_email_address@domain.invalid> wrote:
> OK Well this must be a bug I guess but I managed to get it to work.
>
button_to generates a form for you with a button. You've put a button
in a form, therefore in the generated html there will be a form nested
inside a form which isn't valid html (and also sorts of weird stuff
can happen, like the "wrong" form being generated).

Fred
This topic is locked and can not be replied to.