Как мне потребовать частичное? - PullRequest
0 голосов
/ 17 января 2010

Я довольно новичок в Rails и пытаюсь выяснить, как добавить метод в класс String, и чтобы мой код знал, что класс String был добавлен. Я не уверен, куда я должен поместить требование require.

Ответы [ 2 ]

3 голосов
/ 17 января 2010

Библиотека / monkeypatch.rb

class String
  def some_new_func
    ...
  end
end

приложение / контроллеры / application.rb:

require "monkeypatch"

(или, если вы хотите, чтобы monkeypatch только для определенного контроллера, укажите требуемый в этом контроллере).

См. Также: Rails / lib модули и

2 голосов
/ 17 января 2010

Никогда не работая с Rails, я не уверен, что есть "лучший" способ сделать это, но вы могли бы сделать это через response_to? метод, как это:

# extend String class to add new method
class String
  def some_new_func; end
end

# check to see if a String instance has
# that method available
if "test".respond_to? :some_new_func
  puts "Works!"
else
  puts "Doesn't work."
end

# => "Works!"
...