我有一个处理jquery-ui的水豚猴补丁,它在Ubuntu上运行得很好......虽然当移动到Windows时我得到以下错误(所有依赖宝石都安装成功):
capybara :: dsl :: module
的未定义方法'委托'发生这种情况的代码行是:
module Capybara::DSL
delegate :datepick, :datetimepick, :timepick, to: :page
end
这可能是什么想法?有点失去了为什么只是通过切换OS来显示这个错误...
答案 0 :(得分:6)
标准ruby委托由模块Forwadable
处理。您需要require
然后extend
forwardable
来访问这些方法,如下所示:
require 'forwardable'
module Capybara::DSL
extend Forwardable
#notice syntax is accessor, *methods
def_delegators :page, :datepick, :datetimepick, :timepick
end
您现在尝试使用的委派类型是活动支持Module
类的一部分。如果您想使用此语法,请执行以下操作:
require 'active_support/core_ext/module'
module Capybara::DSL
#active_support syntax allows a to: element in the hash to act as the accessor
delegate :datepick, :datetimepick, :timepick, to: :page
end