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...

Phân biệt build và new trong rails

Phân biệt build và new trong rails

build là phương thức của collection (dùng với bảng quan hệ) Khi dùng build và new với collection thì có một chút khác biệt: Ví dụ ta xét có quan hệ firm has many clients   1. Khác nhau giữa Client.new và firm.clients.new - Client.new sẽ không khởi tạo firm_id - firm.clients.new (hoặc firm.clients.build) sẽ khởi tạo firm_id henrym:~/testapp$ rails c Loading development environment (Rails 3.0.4) r:001 > (some_firm = Firm.new).save # Create and save a new Firm #=> true r:002 > Client.new ...

Phân biệt destroy và delete trong active record rails

Phân biệt destroy và delete trong active record rails

Khi thao tác với active record trong rails, các bạn có thể sử dụng destroy hoặc delete để xóa một đối tượng nào đó. Nhưng destroy sẽ gọi một mớ các tiến trình validate, gọi callback, ... còn delete chỉ đơn thuần gọi một câu lệnh sql xóa dữ liệu trong DB mà thôi. Sau đây mình xin giải thích cụ thể: Xét ví dụ có Post có nhiều Comments và Comment thuộc về một Post. #model Post class Post < ApplicationRecord has_many :comments, dependent: destroy before_destroy :log_before_destroy after...

Khi nào thì associations được lưu trong rails

Khi nào thì associations được lưu trong rails

    Ví dụ mình có một model User và 1 user có nhiều Reviews (User has_many Reviews). User có thuộc tính bắt buộc là user_name, và Review có thuộc tính bắt buộc là title. 1. Đối với User khởi tạo mới (chưa được lưu vào DB). Đúng cho cả các quan hệ belongs_to, has_many, has_one, has_many_and_belongs_to Dùng toán tử << (giống với push array) sẽ nối thêm vào mảng những phần tử cần thêm. Đoạn code sau sẽ trả về một collection:...

length, size và count trong Active Record rails

length, size và count trong Active Record rails

Trong ruby, phương thức length và size đều như nhau và đều đếm số phần tử có trong array hoặc hash. array = [3, 4, 5] puts "array length: #{array.length}" puts "array size: " + array.size.to_s hash = { a: 3, b: 4, c: 5, d:6 } puts "hash length: " + hash.length.to_s puts "hash size: #{hash.size} " Đoạn code trên sẽ cho ra kết quả:  array length: 3 array size: 3 hash length: 4 hash size: 4   Trong ActiveRecord, khi đếm số phần tử của một dữ liệu quan hệ thì có thêm phương thức count nhưng 3 ph...