HELLO, I’M SERHAT AND THIS IS MY FANCY TITLE.

Using has_many :through for nested has_many relations in Rails


has_many :through is a useful association type of Rails. It's mostly popular and often used as a join model for many-to-many relations.

rails-has-many-through

However, has_many :through is more than a simple join model, because it conducts INNER JOIN(s) on related models. We can also take the advantage of this beha...

Continue reading

Running Rake Tasks in a Loop


Rake tasks in a loop, will only executed once when they are not re-enabled. Take a look to this example:


namespace :yoksis do
  desc 'fetches all references'
  task :references do
    mapping = {
      get_instruction_language: 'UnitInstructionLanguage',
      get_instruction_type: 'UnitInstructionType'
    }

    mapping.each do |action, klass|
      Rake::Task['yoksis:reference'].invoke(action, klass)
    end
  end

  desc 'fetch an individual reference'
  task :reference, %i[soap_method klass] => [:environment] do |_, args|
    puts args[:soap_method]
    puts args[:klass]
  end
end

When you run the yoksis:references task, it will only print out {get_instruction_language: 'UnitInstructionLanguage'} and will skip the second item of the mapping hash.

Continue reading
Date: | Tags: ruby, ruby on rails, rake, rake in loop | Categories: tech, ruby, ruby on rails

Rails Instantiated Fixtures


Here we have sample Ruby on Rails fixture file:

test/fixtures/newsletters.yml

tenant_newsletter:
  name: sample
  text_message: hello
  phone_number: 0555444332211
  first_name: foo
  last_name: bar

There are two popular ways to use fixtures in your Rails tests. The first one is directly calling the name of fixture file followed by a symbol stating the name of any individual fixture, ie:

class NewsletterTest < ActiveSupport::TestCase
  test 'a sample test' do
    assert newsletters(:tenant_newsletter).valid?
  end
 end
Continue reading

Ubuntu'da rubymine kurulumu


Ubuntu 12.04 altında RubyMine kurmak için öncelikle sisteminizde Ruby interpreter (irb)'ın kurulu olması gerekiyor. Kurulum için RVM kullanımı önerilse de zorunlu değil. Benim ve komünitenin genel önerisi ise RBenv kullanmanız. Ayrıca sisteminizde Oracle JDK kurulu olması gerekiyor, bunu da daha önce anlatmıştım.

Herşey hazırsa RubyMine arşiv dosyasını indirin. Arşiv dosyasını masaüstüne indirdiğinizi varsayıyorum. Dosyaları arşivden çıkartın.

$ tar xzvf RubyMine-4.5.1.tar.gz

Arşivden çıkarttığınız dosyaları, uçbirimden ulaşmanızın kolay olduğu bir klasöre taşıyın. Ben hepsini home/msdundar/apps altında tutuyorum.

Continue reading
Date: | Tags: ubuntu rubymine kurulum, rubymine kurulumu, rubymine nedir, ruby | Categories: tech, ruby, linux