ben

OMÜ , Bilgisayar Mühendisliği, 13'

6 Temmuz 2015 Pazartesi

Rails slim-Modal box

Ekranlarda ileri Geri yapmak yerine ekran üzerinde açılıp işlem bittiğinde kapanan pencere (modal) yapalım. bir modelimize ait index sayfası ve _form sayfası olsun.

Not: modalda göstereceğimiz view' in ismi '_' ile başlamalı

gem paketi: 

group :assets do
  gem 'jquery-modal-rails'
end

index.html.slim

 tbody
    - @users.each do |kurum|
      tr
        td= kurum.tc
        td= kurum.nameSurname
        td= kurum.phone
        td= kurum.adres
        td= kurum.indirim
        td= link_to "düzenle", href:"#" , data: { toggle: "modal", target: "##{kurum.id}" },  class: 'btn btn-default btn-xs' do
          i.icon.glyphicon.glyphicon-pencil
        .modal aria-hidden="true" id="#{kurum.id}" aria-labelledby="mainModalLabel" role="dialog" tabindex="-1"
          .modal-dialog
            .modal-content
              .modal-header
                button.close data-dismiss="modal" aria-label = "Close" type="button"
                  span aria-hidden="true"  ×
                  span.sr-only Close
                h4#myModalLabel.modal-title İndirim düzenle
              .modal-body
                =render 'admins/users/form'  , user: kurum
              .modal-footer
                button.btn.btn-default data-dismiss = "modal" type = "button" Kapat


    render kısmında user, _form sayfasındaki değişken, kurum ise index sayfasındaki seçili değişken

_form.html.slim

 = form_for [:admins, user], class: 'form-vertical'  do |f|

    .field.form-group
      = f.label "İndirim Oranı (%)"
      = f.text_field :indirim, class: 'form-control'

    .actions
      = f.submit 'Kaydet', class: 'btn btn-default'


   Burda ise dikkat edilmesi gereken nokta genellikle @user olarak kullanılan değişkenin user olarak kullanılması

Ekran görüntüsü: