Never mind - I found it - I needed to add :method => :get to the
form_tag and it worked.

On Dec 22, 11:47 am, Anand Ramanathan <[email protected]> wrote:
> Rails 3: I have a view books/:id/show.html.erb - in the view, I have a form
> with a select tag to pick a template, that on dropdown should submit the
> form which rerenders the page based on the selection:
>
>  <%= form_tag book_path(@book) do %>
>
> >  <%= select_tag "template[]",
> >> options_for_select([["Template1","template1"], ["Template2", 
> >> "template2"]]),
> >> :value => (@template || 'template1'), :onchange => 'this.form.submit();' %>
>
> >  <%end%>
>
> In my controller, I have
>
> > @template = params[:template] || 'post'
>
> In my routes, I have
>
> resources :books, :only => [:show]
>
> and rake routes indeed shows
>
>  book GET    /books/:id(.:format)
>
> > {:controller=>"books", :action=>"show"}
>
> When I first navigate to this view, it all works fine and the view renders
> as expected. If I select a different template from the dropdown, I get the
> error:
>
> No route matches 'books/1'
>
> The funny thing is that the current page is exactly that route.
>
> If I refresh the page, it renders with the default template (and not the
> selected one).
>
> Any help?
>
> Thanks
> Anand

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