#ruby-on-rails #plugins #rspec
Вопрос:
Я пишу плагин Rails, который создает меню в представлении. Я использую link_to
для создания ссылки и current_page?
установки class="active"
на текущей странице.
У меня есть include
d ActionView::Helpers::UrlHelper
, так что я могу им воспользоваться link_to
.
Чтобы начать current_page?
работать в представлении, мне пришлось унаследовать текущий класс (по-видимому ActionView::Base
), и он отлично работает. К сожалению, это полностью нарушает тесты с помощью RSpec.
Я звоню link_to
и current_page?
вот так:
def menu(options = {}, amp;block)
carte = my_menu.new(self)
yield carte
carte.to_s unless carte.empty?
end
class my_menu
include ActionView::Helpers::TagHelper
include ActionView::Helpers::UrlHelper
def initialize(base)
@base = base
end
def link
@base.link_to(name, url_options, html_options)
@base.current_page?(url_options)
end
end
И я получаю эту ошибку с помощью RSpec:
Неопределенный метод `link_to’ для #< Спецификация::Рельсы::Пример::RailsExampleGroup::Подкласс_1:0x24afa90>
Есть какие-нибудь зацепки?
Ответ №1:
include ActionView::Helpers::UrlHelper
В вашей спецификации должна быть решена проблема. Или в вашем файле spec_helper.rb. Я думаю, что это в основном то, что делают спецификации представлений по умолчанию.