19/09/2018, 09:46

Truyền parameters vào rake task

Rake task hẳn là đã khá quen thuộc với các bạn làm việc với Rails rồi. Từ các task mặc định của Rails như rails db:migrate cho đến các task tự viết như namespace :hello do task create : :environment do puts "Hello" end end rake hello :create Hẳn là các bạn ...

Rake task hẳn là đã khá quen thuộc với các bạn làm việc với Rails rồi. Từ các task mặc định của Rails như rails db:migrate cho đến các task tự viết như

namespace :hello do
  task create: :environment do
    puts "Hello"
  end
end

rake hello:create

Hẳn là các bạn cũng từng gặp trường hợp là làm sao để truyền params vào một rake task và gọi nó như thế nào?

Hôm nay mình xin giới thiệu một số cách để truyền params vào rake task và gọi nó.

Cách 1: Rake built-in way

Chắc chắn rồi, rake có một cách dựng sẵn cho phép bạn truyền parameters

namespace :name do
  task :take, [:first_name, :last_name] do |t, args|
    puts "Fullname: #{args[:first_name]} #{args[:last_name]}"
  end
end

rake name:take["LQ","Canh"]
=> Fullname: LQ Canh

Với cách làm này, bạn phải thêm dấu sau cặp dấu [], đặt parasm theo đúng thứ tự, và giữa các params chỉ có dấu , không có space. Còn không nếu bạn sử dụng zsh shell, bạn sẽ nhận được lỗi (mình không chắc với bash shell             </div>
            
            <div class=

0