2011-02-11 19 views
6

Doğru göndermek için bu formu almaya çalışıyorum.Raylar, nasıl bir metin linki ile bir form gönderirsiniz?

<% form_for(:user, :url => update_user_setting_path, :remote => true, :html => {:method => :post, :class => "search_form general_form"}) do |f| %> 

ve düğme bu kodla vermektedir: İşte ben bugüne kadar ne var ben bu doğrudur, eylemi oluşturun kullanıyorum

<li><%= link_to raw("<span class='button approve'><span><span>SAVE</span></span></span>"), :action => 'create' %></li> 

?

<form method="post" data-remote="true" class="search_form general_form" action="/settings/2/update_user" accept-charset="UTF-8"> 

ben eksik:

İşte

hale form etiketi nedir? Yardım ettiğin için teşekkür ederim!

+0

bu gerçekten bir Raylar soru değil mi? –

+0

Ruby ve Rails aynı değil mi? Soruya Ruby ... –

+3

Ruby on Rails! = Ruby ile başladım. Sorunuz Rails-spesifiktir. Ruby'den çok Rails yöntemlerini kullanıyorsunuz. Sen yayılma-itis var – kyrylo

cevap

14

Hayır, link_to'yu düzgün kullanmıyorsunuz.

<% form_for(:user, :url => update_user_setting_path, :remote => true, :html => {:method => :post, :class => "search_form general_form"}) do |f| %> 
    ... 
    <li><%= f.submit "Save" %></li> 

javascript formu göndermek zorunda size gerekecek bir metin bağlantısı kullanmak istiyorsanız: Örneğin, formu değil, bir link_to etiketi göndermek için bir gönderme etiketi kullanmak gerekir. JQuery kullanıyorsanız Örneğin, aşağıdaki yapabileceğini: cevaplar için

<%= link_to 'Save', "#", :onclick=>"$('.search_form').submit()" %> 
0

Teşekkür ... Bu kullanarak sona erdi ve o inşaat büyük:

   <li><%= link_to raw("<span class='button approve'><span><span>SAVE</span></span></span>"), "index_users", :onclick=>"document.forms['form1'].submit();"%></li> 
+1

o kadar takas için – Zabba

+0

Ben kullanmanın önerinizi çalıştı. Onclick => "$ ('# form1')) (yayınlama; ... ama Chrome'da sadece bazen çalışır Neden, bu ne durumda biliyor musunuz? –

2

Ben Pan'ın çözüm gibi ama Doğrudan formun kimliğini dom_id (obj) 'den alabileceğinizi tercih ederim. Form_for yardımcısı da formun kimliğini atamak için dom_id (obj) kullanır. Bu şekilde, el ile sınıfları ayarlamaya veya aynı CSS sınıfını paylaşan birden fazla formu yanlışlıkla göndermeye tabi olmadığınız anlamına gelmez. Biraz yabancı görünüyor ama sadece bu kapsülleyen bir jenerik link_to_submit yöntemi eklemek yüzden genellikle FormBuilder yine özel bir var:

<%= link_to 'Save', "#", :onclick => "$('##{dom_id(@user)}').submit()" %> 
1

Sen, jquery varsa bir kimliği veya seçici kullanmak ihtiyacım yok basitçe yapabilirsiniz:

= link_to 'Save', "#", onclick: "$(this).closest('form').submit()" 
İlgili konular