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