4

我正在编写一个在视图中构建菜单的 Rails 插件。我正在使用link_to构建链接并在当前页面上current_page?进行设置。class="active"

我已经includedActionView::Helpers::UrlHelper所以我可以使用link_to.

为了current_page?在视图中工作,我必须继承当前类(显然ActionView::Base)并且它工作得很好。不幸的是,这完全破坏了 RSpec 的测试。

我打电话link_tocurrent_page?这样的:

def menu(options = {}, &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 的这个错误:Undefined method `link_to' for #< Spec::Rails::Example::RailsExampleGroup::Subclass_1:0x24afa90>

有什么线索吗?

4

1 回答 1

8
include ActionView::Helpers::UrlHelper

在您的规范中应该可以解决问题。或者在你的 spec_helper.rb 中。我认为这基本上是默认情况下视图规范所做的。

于 2008-10-12T16:41:12.267 回答