我刚刚将我的应用程序从rails 3升级到rails 4,我的一些视图页面没有显示。错误来自这种类型的link_for-
user.bets.map { |bet| link_for(bet) }
和错误-
undefined local variable or method 'default_url_options' for #ActionView::Base...
Rails 4引入了这个逻辑:https://github.com/rails/rails/blob/4-0-stable/actionpack/lib/action_dispatch/routing/url_for.rb#L93
其中default_url_options变为matt_writer,而不是matt_reader。你必须在一个合适的空间里自己定义它。
大多数应用程序都会在env文件中定义一个config.domain_name,该名称通过constnts.rb计算为类似domain_name的常量。
因此,应该在application_helper:中定义default_url_options
def default_url_options
{ host: DOMAIN_NAME }
end