NoMethodError:未定义的方法`edit_detailed_reservation_path'在运行unit / application_helper_test.rb时

时间:2015-01-21 08:53:47

标签: ruby-on-rails ruby-on-rails-3 minitest rails-3-upgrade

我们正在将2.3.18申请迁移到3.2.x。我们在运行测试时面临一个问题,即无法使用路线助手找到路线

以下是我们面临问题的断言

#test/unit/application_helper_test.rb
def test_calendar_link_to_with_named_route
  . . .
  calendar_link_to(31, date, {:named_route => 'edit_detailed_reservation_path', :method => :post})
  . . .
end

以下是ApplicationHelper

中定义方法的方法
def calendar_link_to(anchor_text, date, *args)
  options = args.first.is_a?(Hash) ? args.pop : {}
  method = options[:method]
  named_route = options[:named_route]

  url_hash = { :day => date.day, :month => date.month, :year => date.year }
  url = named_route ? self.send(named_route, url_hash) : url_hash

  link_options = { :id => "date-#{date.year}-#{date.month}-#{date.day}" }
  if date > Parameter.event_horizon
    link_options[:title] = 'This date is beyond the event horizon.'
  end
  link_options[:method] = method if method
  link_to(anchor_text, url, link_options)
end

在运行测试时,我们得到以下错误

NoMethodError: undefined method `edit_detailed_reservation_path'

要解决此错误,我还尝试将以下行放在application_helper.rb

include Rails.application.routes.url_helpers

我们使用以下命令来运行测试

rake test TEST=test/unit/application_helper_test.rb

在Rails 2中,edit_detailed_reservation_path在pry会话中检查时提供绝对URL,但在Rails 3中不起作用。

有人请指导我们可能出现的问题以及解决方法吗?

0 个答案:

没有答案