joins, preload, include và eager_load với active record trong rails

joins, preload, include và eager_load với active record trong rails

Xét ví dụ: bảng zombies có quan hệ một nhiều với bảng weapons như sau:        1.Joins joins là câu lệnh join 2 bảng bình thường trong sql: Zombie.joins(:weapons) #return 6 rows #<ActiveRecord::Relation [ #<Zombie id: 1, name: "Ashley", graveyard: "Glen Haven Memorial Cemetery">, #<Zombie id: 2, name: "Bob", graveyard: "Chapel Hill Cemetery">, #<Zombie id: 3, name: "Katie", graveyard: "...

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