2013-04-26 21 views
5

Bir onay kutusunun raylarda kontrol edildiğini nasıl doğrularsınız? Onay kutusu son kullanıcı sözleşmesi içindir. Ve modal bir pencerede bulunur. ben bu nasılRaylarda bir onay kutusu nasıl onaylanır

<%= check_box_tag '' %> 


ve doğrulamak gerekir:

ı onay kutusunu var düşünelim?

Buradaki raylarda onay kutusu doğrulaması ile ilgili yayınların çoğunu gördüm, ancak bunların hiçbiri gereksinimlerim için uygun değil.

cevap

14

yapmalıyım modelinize

validates :terms_of_service, :acceptance => true 

ekleme. Daha fazla bilgi ve seçenek için here'a bakın. şartlarını kabul Modeliniz için bir formun parçası değilse

Ancak, istemci tarafı doğrulamaları kullanmalıdır, böyle (jQuery) diğer bir deyişle JavaScript:

function validateCheckbox() 
{ 
    if($('#checkbox').attr('checked')){ 
     alert("you have to accept the terms first"); 
    } 
} 

Bir komut dosyası ekleyebilirsiniz tıklamada işlevi

<%= javascript_include_tag "my_javascipt_file" %>

ve tetikler: böyle görünümünüze dosyasını

<%= submit_tag "Submit", :onclick: "validateCheckbox();" %>

DÜZENLEME: onay kutunuza şu şekilde bir kimlik atayabilirsiniz: check_box_tag :checkbox. HTML şöyle görünecektir: <input id="checkbox" Daha fazla seçenek için these examples adresine bakın.

+0

Bu durumda, onay kutusunu nasıl adlandırabilirim? – geirmash

+0

@ user2019492 - lütfen bkz – kostja

+2

kostja oldukça güzel bir açıklama sunar, ancak kişisel olarak hem istemci tarafında hem de denetleyicilerimde kabul doğrulamasını yapmayı tercih ediyorum, sonra kabul edilirse geçerli süreyi gönderirim. accepted_conditions_at "özniteliği kolayca idare edebilme ve kullanıcının koşullarını yeniden kabul etmesine izin vermeme izin verdiyse – dennis