nightf0x
nightf0x

Reputation: 2039

Using form_for tag with get method

I am trying to Submit a form using get method. Earlier I was trying a similar thing with form_tag and it was working but now when I changed to a form_for tag, this doesn't seem to work.

<%- filter_path = params[:action] == "index" ? posts_path : sneak_peek_posts_path %>
<%= form_for(@post_filter, :url=> filter_path, :method => :get) do |f| %>

I get a no routes error.

Upvotes: 13

Views: 16022

Answers (2)

rjz
rjz

Reputation: 16510

You can pass the raw HTML attributes using :html if you need to. For Rails 3:

<%= form_for(@post_filter, :url=> filter_path, :html => { :method => 'GET' }) do |f| %>

Update and in Rails 4, per @andre.orvalho's suggestion below, the method parameter can be supplied directly:

<%= form_for(@post_filter, url: filter_path, method: :get ) do |f| %>

Upvotes: 28

Blacksad
Blacksad

Reputation: 15412

Did you try

<%= form_for(@post_filter, :url=> filter_path, :html => {:method => :get}) do |f| %>

Upvotes: 2

Related Questions