Nested attributes with multiple object
Nested attributes là gì? Nested attributes là một tính năng nó cho phép lưu thuộc tính của bản ghi này thông qua bản ghi khác (associated records). Theo mặc định nested attributes cập nhật thuộc tính được tắt và có thể kích hoạt nó bằng cách sử dụng: accepts_nested_attributes_for ...
- Nested attributes là gì?
Nested attributes là một tính năng nó cho phép lưu thuộc tính của bản ghi này thông qua bản ghi khác (associated records). Theo mặc định nested attributes cập nhật thuộc tính được tắt và có thể kích hoạt nó bằng cách sử dụng: accepts_nested_attributes_for [class_method] Tùy chọn tự động lưu được tự động kích hoạt trên mỗi accepts_nested_attributes_for đó được sử dụng. - Cách sử dụng
app/model/word.rb
:reject_if proc để bỏ qua bất cứ một record mới nếu không thỏa mãn điều kiện.
app/model/answer.rb
Create các thuộc tính answers thông qua 1 mảng thuộc tính của word
Khi update các thuộc tính answers thông qua 1 mảng thuộc tính của word, hash answers phải chứa khóa id, nếu không thì nó sẽ tạo mới
Theo mặc định associated records được bảo vệ không destroy. Nếu muốn destroy bất kỳ associated records thông qua attributes hash thì phải kích hoạt sử dụng tùy chọn :allow_destroy. Khi đó ta phải thêm khóa _destroy vào attributes hash cùng với giá trị là true thì sẽ destroy associated model
Lưu ý: Model sẽ không bị destroy cho đến khi save
Model không được destroy trừ khi chỉ định id của nó trong hash
Nếu muốn xác nhận một record có được liên kết với record cha, có thể sử dụng validates_presence_of [method] và :inverse_of [key]