I have the following button to download a file.
= button_to \'download\', action: \'download\', method: \'get\'
And I have a download
Alternatively, if you want to specify controller/action (which has advantages, since it allows you to pass through arbitrary params), you'll need to also explicitly pass along any parameters that action relies on (assuming you're trying to download an individual movie, and not the entire collection).
button_to 'download', {controller: 'movies', action: 'download', id: movie.id }, method: 'get'
Also, ditto Mikhail D's point about using link_to for "get" requests. Defining the method explicitly is great for sending requests to the "update" action (by setting method: :patch or method: :puts), but for "gets" just use link_to.