Tło:
Badałem metodę Railsowa number_to_currency, próbując znaleźć jednostki, które są dostępne dla waluty i jak przekazać je do bloku opcji. Kontynuacja obu APIDock i Ruby on Rails APIi przeszukiwanie Repozytorium Rails, Nie znalazłem rzeczywistej definicji metody. Próbowałem również wywołać metodę source_location na number_to_currency, ale to zwróciło błąd.
Pytanie:
Szukam abstrakcyjnego sposobu na znalezienie dowolnej definicji metody RoR.
Odpowiedzi:
1 dla odpowiedzi № 1Każdy obiekt ruby ma nazwę method
. To method
-metodę można podać nazwę, a ona zwróci a method
-obiekt zawierający informacje o metodzie o podanej nazwie. Obejmuje to informacje o source_location
metody również.
Metody takie jak number_to_currency
są metodami pomocniczymi zdefiniowanymi w view_context obiekt, na którym są wybierane twoje poglądy.
Widzieć ten wątek o sposobie ich wykonywania na konsoli.
Tam możesz następnie zbadać następujące metody:
irb(main):001:0> helper.number_to_currency 3.14
=> "3,14 €"
irb(main):002:0> helper.method(:number_to_currency)
=> #<Method: ActionView::Base(ActionView::Helpers::NumberHelper)#number_to_currency>
irb(main):003:0> helper.method(:number_to_currency).source_location
=> ["/Users/at/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/actionview-4.1.5/lib/action_view/helpers/number_helper.rb", 107]