2 button_to functions for file downloads


#1

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’ %>


#2

Anyone have any idea why one button does a submit and the other does a
file download?


#3

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


#4

For some reason the first button is giving me this for a response:
try {
$(“notification”).update(“

Site
123 was built

”);
$(“downloads”).show();
} catch (e) { alert(‘RJS error:\n\n’ + e.toString()); alert(’$
(“notification”).update("<h1 style=‘display: inline’ class='mes
‘>Site 123 was built");\n$(“downloads”).show();’); throw e }

#5

Application.rhtml:
<% form_tag( {:action => ‘mltn6p’} ) do -%>

Wendia Site entry Program

Select your Shelf <%= select(:node, :id, $shelves,{:prompt =>'Select Equipment'},{ :onchange => remote_function(:url => { :action => "gotoshelf"})} ) %>
<%= render :partial => 'sitedata' %> Download POB Files <%= button_to 'Download CIS file', :action => 'downloadcis' %> <%= button_to 'Download PCCIS file', :action => 'downloadpccis' %>
<div id="content">
    <div id="notification"> </div>
        <%= yield %>
</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


#6

Anyone have any ideas why the second button works but the first button
is giving me the above error?


#7

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.

<%= button_to 'Download PCCIS file', :action => 'downloadpccis' %>
<%= button_to 'Download PCCIS file', :action => 'downloadcis' %> <%= button_to 'Download PCCIS file', :action => 'downloadpccis' %>

#8

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