Tôi đang thực hiện một số phản ánh và chạy vào một khối đường bất ngờ.Phương pháp Ruby tự trả về
Có một phương pháp đối tượng trong ruby (hoặc đường ray) mà trả về bản thân
ruby-1.9.2> o = Object.new
=> #<Object:0x00000104750710>
ruby-1.9.2> o.class
=> Object
ruby-1.9.2> o.send :self
NoMethodError: undefined method `self' for #<Object:0x00000104750710>
Những gì tôi muốn
ruby-1.9.2> o.send :self
=> #<Object:0x00000104750710>
Đây có phải là xây dựng trong? Hay tôi cần phải mở rộng đối tượng (Nó luôn luôn được tôi lo lắng mở cửa Object):
class Object
def itself
self
end
end
Và rồi vậy:
ruby-1.9.2> o.send :itself
=> #<Object:0x00000104750710>
Ok, một số nền tảng trên những gì tôi đang cố gắng để đạt được . Tôi có một helper bảng chung trong ứng dụng ray của tôi, và bạn gọi nếu như vậy:
render_list @person, [{field: :name, link_to: :itself},
{field: {address: :name}, link_to: :address}]
tôi đã đấu tranh trên đúng cách để gọi :itself
- nhưng tôi nghĩ rằng bản vá của tôi là con đường để đi .
Không rõ bạn đang cố gắng làm gì ở đây. 'self' không chính xác là một phương thức trong trường hợp này, theo như tôi biết, nhưng là một tham chiếu đến ngữ cảnh hiện tại. Bạn đang mong 'o.self' khác với 'o' bằng cách nào đó? – tadman
Có thể mọi người có thể cung cấp câu trả lời hữu ích hơn nếu bạn đưa ra ví dụ về mục tiêu cuối cùng của bạn là gì? –
@brett - đã thêm – Jonathan