Khi danh sách đối số là một phương pháp của Ruby gọi của kết thúc bằng một hoặc nhiều cặp khóa-giá trị, như foo: 'bar'
hay 'foo' => 1
, Ruby thu thập tất cả chúng vào một hash đơn và đi mà băm như tham số cuối cùng. Bạn có thể thấy rằng chính mình trong irb
:
irb(main):002:0> puts foo: 'bar', baz: 'quux'
{:foo=>"bar", :baz=>"quux"}
=> nil
Vì vậy, bạn có thể thêm một tham số cuối cùng, bắt buộc đến một phương pháp bạn đang viết để nhận băm này. Bạn thường sẽ muốn mặc định nó thành một băm rỗng. Bạn có thể gọi bất cứ điều gì thông số bạn muốn, nhưng options
là một tên gọi chung:
def my_method(a, b, c, options = {})
...
end
Một mẹo nhỏ hữu ích nếu bạn đang sử dụng Rails: Đó là thường tiện dụng để điều trị chuỗi đồng bằng và các ký hiệu như tương đương. Rails cho biết thêm một phương pháp symbolize_keys!
-Hash
để chuyển đổi tất cả các phím chuỗi biểu tượng:
def my_method(a, b, c, options = {})
options.symbolize_keys!
...
end
Nguồn
2013-05-15 23:36:37
U rock man! Cảm ơn :) – facundofarias
Cảm ơn, cũng đã giải thích: D +1 –