Muhammet Dilek

Ruby, Ruby On Rails, HTML5, CSS3

Git Notları

Son commiti değiştirme

1
git commit --amend -m "yeni commit"

Son commiti geri alma

1
git reset --soft HEAD~1

Tagları push etme

1
git push --tags

Haml Autoclose Options

Autoclose tags, içerisinde içerik bulundurulmayan taglar olarak adlandırılıyor. Örneğin <br /> yada <hr /> tagları gibi. Haml bu tagları autoclose ayarlarına eklemiş. O listede default olarak aşağıdaki taglar bulunuyor.

1
['meta', 'img', 'link', 'br', 'hr', 'input', 'area', 'param', 'col', 'base'].

Bunlara yeni tag eklemek yada var olanları değiştirme işlemlerini rails projesinde config/boot.rb içerisinde yapıyoruz.

1
2
require 'haml/template/options'
Haml::Template.options[:autoclose] = ['meta', 'img', 'link', 'br', 'hr', 'input', 'area', 'param', 'col', 'base', 'action']

Burada ekleyeceğiniz tagın default olarak autoclose olacağını unutmayınız. Örneğin action tagını projenin her yerinde autoclose olarak kullanacaksınız gibi.

Bu problemi haml dosyasında tag sonuna / ekleyerekte çözebiliriz;

1
%action{ application: 'export', data: 'data' }/

Html çıktısı:

1
 <action application='export' data='data' />

İyi çalışmalar dilerim.

How to Create .rvmrc

Run rvm --create --rvmrc ruby-2.0.0-p247@projectname in project folder.

Simple Form Inputlara Default Ozellik Ekleme

Simple Form’ da bir forma ait tüm inputlara bir özellik eklemek istersek simple_form_for metoduna defaults parametresini gönderiyoruz;

1
2
3
4
5
6
7
8
9
10
11
12
= simple_form_for([:company, @product], defaults: {input_html: {class: 'span5'}}) do |f|
  = f.error_notification

  .form-inputs
    = f.input :name
    = f.association :brand, include_blank: 'Marka Seç'
    = f.input :liter, input_html: {min: 0.5, value: 19}
    = f.input :price, input_html: {min: 0.1}
    = f.input :photo, as: :file

  .form-actions
    = f.button :submit

defaults: {input_html: {class: 'span5'}} parametresi tüm inputlara class olarak span5 eklemektedir.

Rails URL’ Ye Default Locale Parametresi Ekleme

Url’ ye default bir parametre eklemek için controllerda default_url_options metoduna istediğimiz parametreyi Hash olarak veriyoruz.

1
2
3
def default_url_options(options={})
  { :locale => I18n.locale }
end

Yukarıdaki örnekte url’ lerin sonuna ?locale=en parametresi gelmekte. Eger bunu urlde /locale/ seklinde göstermek istersek routing de

1
2
3
4
5
6
scope "(:locale)", :locale => /en|tr|ru/ do
  resources :homes
  resources :pages
  resources :line_items
  ....
end

ayarını yapıyoruz. :locale /en|tr|ru/ parametresinde locale olarak gelebilecek değerleri sınırlandırıyoruz.

Kolay gelsin…

Rails Urlden Namespace Gizleme

Urlden namespace gizlemek için namespace :admin yerine scope :module => 'admin' kulanıyoruz. Örneğin;

1
2
3
namespace :admin do
  resources :posts, :comments
end

Oluşacak url /admin/posts,

Oluşacak url helper admin_posts_path,

1
2
3
scope :module => "admin" do
  resources :posts, :comments
end

Oluşacak url /posts olacaktır,

Oluşacak url helper posts_path şeklinde olacaktır.

Kaynak: http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing

Kolaylıklar…