2010-01-30 17 views
8

Link_to kullanarak bir ror problemine rastladım. Link_to parametrelerindeki "method" => "post" u belirledikten sonra neden linkimin GET yöntemini ve düğümü POST yöntemini kullanması için kullanıyorum?Button_to POST Link_to kullanır, GET kullanır, neden? ROR

Görünüm:

<%= button_to "pdf", :action => 'getquote' %> 
<%= link_to 'pdf', {:controller => 'inventories', :action => 'getquote', :method => :post } %> 

Kontrolör Yöntem:

def getquote 
@cart = find_cart 
respond_to do |format| 
format.pdf 
end 
end 

Terminali Çıkış (sırasıyla Düğme/Link):

Processing InventoriesController#getquote (for 127.0.0.1 at 2010-01-30 01:38:02) [POST] 
    Parameters: {"action"=>"getquote", "authenticity_token"=>"D2cwnHyTHgomdUM3wXBBXlOe4NQLmv1Srn0paLbExpQ=", "controller"=>"inventories"} 

Processing InventoriesController#show (for 127.0.0.1 at 2010-01-30 01:39:07) [GET] 
    Parameters: {"method"=>"post", "action"=>"show", "id"=>"getquote", "controller"=>"inventories"} 

cevap

11

Ben senin html seçenekleri url seçenekler arasından ayrı bir karma olmak zorunda düşünüyorum:

<%= link_to 'pdf', {:controller => 'inventories', :action => 'getquote'}, {:method => :post } %> 

hiçbir şans ile uygun bir örneğin tüm baktı. Benim kodu için çoğunlukla vazgeçmiş ve sadece yeni stil kullanmak ettik:

<%= link_to 'Delete', custom_event, :confirm => 'Are you sure?', :method => :delete %> 
+0

Aynı sorunu ROR 3.0.17 (veya 18, veya 19, hatırlamıyorum) ile yaşıyorum. İşaretlemeyi bu "yeni stil" gibi yaptım, belirli bir sayfa dışında çoğu sayfada çalışıyor. Arama tamamen aynı şey, neyin yanlış olduğunu bilmiyorum. Ayrıca ateş böceği, bağlantının 2 veri parametresine sahip olduğunu gösterir: veri onaylama ve veri yöntemi. Bunun doğru olması mı gerekiyor? –

1

Bir olasılık sen, JavaScript devre dışı bırakıldığını beyan hangi durumda bir GET'e geri dönecek.

+1

JavaScript etkindir. –

6

:) ziyaret Varsayılan olarak

olan birisi için yararlı olabilirdi, button_to sadece POST eylemi gerçekleştirir.

yapmak yapmak için bir GET şöyle sözdizimi:

<%= button_to 'pdf', { :action => 'getquote'}, :method => :get %> 
+1

Çalışıyor, ama sadece '' get '' sembolünü veya küçük harfini '' al '' olarak geçiyorsanız. '' GET ''dize çalışmıyor. Sadece biraz tuhaf. – Gunchars

+3

Bunu yaptığımda bir soru işareti "?" URL’imin sonuna. Bunu gören var mı, yoksa bir sorunu mu var? –

+1

@TrevorMcKendrick bu yararlı olabilir http://stackoverflow.com/a/8122116/1297435 –

İlgili konular