2013-04-03 14 views

cevap

-1

bariz cevaptır submit_tag ve submit, yalnızca farklı argümanları alan farklı form yardımcı yöntemleridir. iki farklı yöntem olduğundan

1

...

o yöntem üzerinde denir formdan birini anlaması çünkü yöntem bir başlık almaz "Gönder" ve ne nesne oluşturmak için kullanıldı formu.

Bir form nesnesinde "submit_tag" yöntemi çağrılmıyor. Daha özelleştirilmiş form oluşturma (örneğin, activerecord modelinizden daha ayrık) için kullanılır ve bu nedenle kod bir altyazı çıkartamaz ve ilk argüman olarak bir değer elde etmelidir. Tüm "formelement_tag" yöntemleri (örneğin, here belgelenmiştir) bu şekildedir ve veri modelinize göre daha az sonuç çıkartabilir.

8

way that submit_tag method was implemented'a bir bakış sorunuzu açıkça yanıtlıyor.

def submit_tag(value = "Save changes", options = {}) 
    options = options.stringify_keys 

    if disable_with = options.delete("disable_with") 
     options["data-disable-with"] = disable_with 
    end 

    if confirm = options.delete("confirm") 
     options["data-confirm"] = confirm 
    end 

    tag :input, { "type" => "submit", "name" => "commit", "value" => value }.update(options) 
    end 

İki argüman alır, ilk varsayılan olarak "Değişiklikleri kaydet" dir value ve ikinci seçenek Hash olduğunu. nil'u geçmezseniz, o zaman giriş için istediğiniz değer olduğunu varsayalım.

0

Yöntemlerin _tag dizisi genellikle bir ad parametresi gerektirir (aksi takdirde oldukça kullanışsız etiketler olurlar, bu yüzden her zaman hashın bir parçası yerine ilk argüman olur. Gönderilen yardımcı, formun bir parçası olarak çağrılır. alanın adı özelliğini varsayabiliriz ve ardından seçenekler ilk argüman karma yapabilir

7
 <%= submit_tag("Update", :id=>"button", :class=>"Test", :name=>"submit") %> 

ilk parametre gereklidir ve bunun değeri olacağını ve belirtmek istediğiniz herhangi bir parametre, bir karma gibi yapılabilir.: anahtar => "değer".

İlgili konular