2011-02-01 23 views
8

form_for var Bir kullanıcı bir gruptan başka bir kullanıcıyı tanıtmasına izin verecek olan görüntü yardımcılarımda yapıyorum. Ben düğmesi ile formu gönderdiğinizdeRaylar: form_for'daki gizli alan denetleyiciye parametre göndermiyor

def promote_button_for(group, user) 
    membership = group.get_membership(user) 
    form_for membership, :url => group_membership_path(group, membership) do |f| 
     f.hidden_field :group_creator 
     hidden_field_tag 'test', '1' 
     f.submit("Promote", :onclick => "return confirm(\"Are you sure you want to promote #{user.email} to an officer?\")") 
    end 
    end 

, ben kontrolöre gönderme gizli alan parametrelerin herhangi olsun görünmüyor. ,

<form accept-charset="UTF-8" action="/groups/1/memberships/6" class="edit_membership" id="edit_membership_6" method="post"> 
    <div style="margin:0;padding:0;display:inline"> 
     <input name="utf8" type="hidden" value="&#x2713;" /> 
     <input name="_method" type="hidden" value="put" /> 
     <input name="authenticity_token" type="hidden" value="VQl/rVX8OVOETv2HE7KtopUc3B19ShoMkUhjJwNlaZs=" /> 
    </div> 
    <input id="membership_submit" name="commit" onclick="return confirm(&quot;Are you sure you want to promote [email protected] to an officer?&quot;)" type="submit" value="Promote" /> 
</form> 

Herhangi yardım büyük takdir

Teşekkür:

Started POST "/groups/1/memberships/6" for 127.0.0.1 at 2011-02-01 01:45:32 -0600 
    Processing by MembershipsController#update as HTML 
    Parameters: {"utf8"=>"✓", "authenticity_token"=>"VQl/rVX8OVOETv2HE7KtopUc3B19ShoMkUhjJwNlaZs=", "commit"=>"Promote", "group_id"=>"1", "id"=>"6"} 

oluşturulan HTML gibi görünüyor! form_for ve f.submit arasındaki her şey kaybolur iken

cevap

4

deneyebilir miyim.

Bu durumda, form_for etiketi, doğrudan yalnızca promote_button_for yönteminden döndürülen bir dize olduğu için görünümü doğrudan işlemez.

cevap

aynen bu şekilde, oluşturulan etiketler birlikte zincire ihtiyaç vardır: hep birlikte oluşturulan dizeyi birleştirir ve form_for onları döndüren

def promote_button_for(group, user) 
    membership = group.get_membership(user) 
    form_for membership, :url => group_membership_path(group, membership) do |f| 
    f.hidden_field(:group_creator) << \ 
    hidden_field_tag('test', '1') << \ 
    f.submit("Promote", :onclick => "return confirm(\"Are you sure you want to promote #{user.email} to an officer?\")") 
    end 
end 

Bildirimi << \.

+0

Brillaint, çok teşekkürler! Bir görünüm yardımcısı içinde form_for hakkında çok fazla bilgi bulamadım, bu mükemmel bir his veriyor. – Andrej

11

Eğer form_for nesne sadece son f.submit etiketi ile oluşturulan dize görmeye yaşandığı için bu sorunu yaşıyorsanız

f.hidden_field :group_creator, {:value => ''} 
+1

Teşekkürler, bunu arıyordum! –