Có nên gọi ActiveRecord::Rollback với rescue trong transaction rails?

Có nên gọi ActiveRecord::Rollback với rescue trong transaction rails?

Khi sử dụng transaction trong RoR, có lúc ta không cần phải gọi câu lệnh ActiveRecord::Rollback , cũng có lúc ta phải gọi nó. Xét ví dụ: self.transaction do first_operation begin second_operation call_other_function rescue Exception => e #deal with the error raise ActiveRecord::Rollback #force a rollback end end Nếu bỏ raise ActiveRecord::Rollback : Mọi thay đổi tới DB xảy ra ở second_operation và call_other_function đều được r...

eval trong javascript

eval trong javascript

Ta nên tránh dùng eval vì một số lý do sau: Dễ bị tấn công injection. Không debug được code trong eval. Hiệu năng khi chạy code trong eval. Có 2 cách gọi eval là gọi trực tiếp(Direct call) và gọi gián tiếp(Indirect call) Direct call là gọi trực tiếp bằng cách gọi eval(...your code...)  Indirect call là gọi gián tiếp thông qua một biến trung gian(xem VD phía dưới) Xét ví dụ sau: ...

Thơ Hồ Xuân Hương

Thơ Hồ Xuân Hương

Hồ Xuân Hương khi đi qua chơi chùa Trấn Quốc, ngó lên cái chuông chùa và mời các thầy làm thơ về vẫn Uông, các thầy nhìn nhau không biết nói gì, cô liền tự mình ngâm: Một đàn thằng ngọng đứng xem chuông. Chúng bảo nhau rằng "ấy ái uông".   Cảnh chồng chung: Kẻ đắp chăn bông, kẻ lạnh lùng Chém cha cái kiếp lấy chồng chung! Năm thì mười hoạ chăng hay c...

Tự động deploy khi push git sử dụng circleCI và deploy server

Tự động deploy khi push git sử dụng circleCI và deploy server

Khi quá trình deploy trở lên phức tạp và mất thời gian để làm nhiều thứ, lúc đó các bạn nên nghĩ đến giải pháp tự động deploy. Bằng cách này, bạn không phải quan tâm tới việc deploy mỗi lần nữa mà mọi thay đổi sẽ được tự động deploy lên server cho bạn mỗi khi bạn thay đổi code của mình. Ví dụ khi hệ thống của bạn sử dụng các dịch vụ của AWS như EC2, ECS, Cloudfront, S3,... thì sẽ rất mất nhiều thời gian để bạn deploy thủ công bằng tay. Tự động deploy giúp bạn không còn phải quan tâm g&i...

Extract zipped file in ipage.com

Extract zipped file in ipage.com

For who can not extract zipped file in ipage.com. I build my app by using laravel framework, zip my project, upload to ipage.com via FileZilla and extract it through archive gateway of the page but can not be done. Solution: using .tar file Archive gateway of ipage can extract zip, Gzip and tar file so I compressed my folder to myapp.tar - tar file from terminal: tar -zcvf myapp.tar myapp/ - upload myapp.tar to ipage and extract normally....


Phân biệt biến có tiền tố @ và @@ trong ruby rails

Phân biệt biến có tiền tố @ và @@ trong ruby rails

1. Điều đầu tiên bạn cần biết. - Mọi thứ trong ruby đều là object: Kể cả việc khai báo class thì class vừa được khai báo cũng là một object. class Something end Khi khai báo class như trên nghĩa là bạn đã khai báo một object Something của lớp Class: Something = Class.new   - Khái niệm Class variable là biến của lớp (chính xác thì ruby không có khái niệm ...

Cách hoạt động của subject trong rspec trong ruby on rails

Cách hoạt động của subject trong rspec trong ruby on rails

Nếu các bạn đang học về unit test với rspec trong ruby on rails, chắc hẳn sẽ không xa lạ gì với hàm subject. Khi sử dụng subject, cần chú ý một số điều như sau: - subject sẽ không được gọi thực thi khi khai báo, mà chỉ được thực thi khi gọi tới nó (Xem ví dụ phía dưới để hiểu cụ thể) - hàm subject sẽ chỉ được thực thi một lần trong mỗi một block test (một example) - hàm subject sẽ được thực thi lại trong các block test khác nếu trong block test này có gọi tới subject....

Cách sử dụng exception hiệu qủa trong ruby on rails

Cách sử dụng exception hiệu qủa trong ruby on rails

    1. Khi nào nên xử lý exception. Nguyên tắc: Ngoại lệ không nên được dự đoán biết trước (Exceptions should not be expected) Một hàm tạo user cơ bản được viết như sau: def create @user = User.new params[:user] if @user.save redirect_to user_path(@user) else flash[:notice] = 'Unable to create user' render :action => :new end end Nhưng có người lại viết nó một cách ngắn gọn: def create @user = User.new p...

Cách nhúng thư viện ngoài vào maven project trong java

Cách nhúng thư viện ngoài vào maven project trong java

Ví dụ mình có một thư viện tên là pdfreactor.jar Có 2 cách phổ biến để có thể include thư viện đó vào, đó là 1. Cài đặt thư viện đó vào repository trên máy bạn Cách này có hạn chế là mỗi khi chạy project trên một máy mới thì bạn lại phải cài đặt lại thư viện đó vào. Cách làm như sau: Đầu tiên bạn cần cài đặt mvn để có thể biên dịch thư viện ngoài. Sau khi cài đặt mvn thì bạn ...