2009-01-22 27 views
4

我有這個語法,工作(因爲它來自API的,相當多)Rails:之前做了多個參數?

<% form_tag :action => "whatever" do -%> 
    <div><%= submit_tag 'Save' %></div> 
    <% end -%> 

而這一點,其中工程

<%= form_tag({:action => "whatever"}, {:method => "get"})%> 

現在我試圖將它們結合起來,猜測的語法。 「get」不會像我所希望的那樣被添加爲表單方法。這應該怎麼讀?

<% form_tag :action => "whatever",:method => "get" do -%> 
    <div><%= submit_tag 'Save' %></div> 
    <% end -%> 

表單標籤應該閱讀:

<form action="hello/whatever" method="get"/> 

<form action="hello/whatever?method=get" /> 

回答

7
<% form_tag({:action => 'whatever'}, :method => "get") do -%> 
     <div><%= submit_tag 'Save' %></div> 
<% end -%> 

望着API docs,這個問題是:method需要在options散走,和:actionurl_for_options散列,你ne編輯額外的大括號,以便解釋者知道他們是不同的哈希值。

+0

不,語法錯誤,...謝謝。 – 2009-01-22 17:13:35

+0

你是對的。堅持... – DanSingerman 2009-01-22 17:14:50

+0

優秀...抱着! – 2009-01-22 17:18:33

0

你試過

<% form_tag(:action => "whatever", :method => "get") do -%> 
    <div><%= submit_tag 'Save' %></div> 
<% end -%> 

ri form_tag給你的例子也是如此。

2

我想說這樣做的最好方法是不使用匿名路由名稱並使用命名路由。這樣更好更清潔

<% form_tag discussions_path, :method => 'get' do %> 
    <div><%= submit_tag 'Save' %></div> 
<% end %> 
相關問題