2013-07-19 20 views

Trả lời

2

Có đúng cách, nhưng hãy nhớ, n o callbacks hoặc validations sẽ được thực thi.

BTW, update_all cũng chấp nhận các điều kiện. Như thế này

Foo.update_all({:some_columnn => "1"}, {:some_id => 1}) 
0

Đây là cách tiếp cận đúng nếu bạn không muốn khởi tạo đối tượng, nhưng hãy nhớ rằng điều này cũng có nghĩa là nó sẽ không thực hiện bất kỳ xác thực hoặc gọi lại mô hình nào của bạn - nó đi thẳng đến lệnh cập nhật SQL.

Further information

0

Bạn có thể sử dụng điều kiện, theo api của update_all

update_all (cập nhật, điều kiện = nil, options = {})

Vì vậy, bạn có thể làm:

Foo.update_all(:some_column => '1', :some_id => 1) 
2

As of Rails 4, các điều kiện không còn được cung cấp trên các phương pháp update_all, nhưng thay vào đó quy định về việc thu trước. Ví dụ:

# updates everything, as usual 
Foo.update_all(some_column: '1') 

# update only the specified rows 
Foo.where(some_id: 1).update_all(some_column: '1') 
Các vấn đề liên quan