2010-04-23 18 views
17

Oluşturma eylemini bir link_to'dan doğru olarak nasıl çağırırım? REST kullanıyorum (map.resources: yemek tarifleri). İşte oluşturmak eylem var: ÖrneğinRuby On Rails: Oluştur eylemini çağırmak için "link_to" yapabilir miyim?

def create 
    recipe = Recipe.create(:name => "French fries") 
    redirect_to recipe 
end 

, ben böyle bir şey işe yarayabilecek düşündüm:

<%= link_to "Create a default recipe", recipe_path, :method => :post %> 

emin değilim bunu yapmak için bir tavsiye (hatta doğru) yolu buysa. Herhangi bir fikir?

cevap

28

recipe_path için recipes_path'u değiştirirseniz bu işe yarar. oluşturmak eylem URL yardımcı ("recipes_path"), kontrolör adından oluştuğundan bir ipucu

recipes GET /recipes(.:format) {:controller=>"recipes", :action=>"index"} 
     POST /recipes(.:format) {:controller=>"recipes", :action=>"create"} 

: Eğer rake routes çıkışında bakarsak

, gibi bir şey görmelisiniz :method => :post kullanarak, sonunda _path ile tacked. :method => :get (varsayılan değer) kullanılarak aynı yol, index eylemiyle eşleşir.

JavaScript devre dışı bırakılırsa Raylar aslında POST yapmak için bir form oluşturan bir on_click işleyicisi ekleyerek çünkü bu, işe yaramaz unutmayın. Aynı seçenek :confirm seçeneği ile silme bağlantıları için de geçerlidir.

+0

Güzel açıklamanız için teşekkür ederiz zetetic! çok teşekkür ederim! :) – sjsc