2012-10-18 24 views
6

我已经完成了标题中描述的错误的众多解决方案。Subdomains + ActionView :: Template :: Error(缺少链接到的主机!)

ActionView::Template::Error (Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true):

然而,这个项目还修改了url_for功能使用子域名,如在此railscast:

http://railscasts.com/episodes/221-subdomains-in-rails-3

因此,传统的答案,这样的错误,这样的因为在我的环境设置中设置变量似乎不是解决方案。

下面是其他一些提示:

  • 这是新成立的一个品牌,我刚才克隆​​一个项目,安装红宝石,铁轨,宝石等
  • 我已经试过“RVM内爆”和多次开始
  • 团队的其他成员通常在Mac上本地开发,而我正在远程开发Ubuntu机器。
  • 我的工作,作为root(做这件事?)

完成500内部服务器错误1889ms

::的ActionView ::模板错误(缺少主机链接到请提供!主机参数,设置default_url_options [:host],或设置:only_path为true): 1:%header.menu {:role =>“banner”} 2:.col980 3:%h1 4:%a。 logo {:href => root_url({:subdomain => false})} 5:-if current_user.premium? 6:%IMG {:ALT => “满足地”,:SRC =>“/images/logo_beta_premium.png"}/ 7:-else 应用程序/助手/ url_helper.rb:16:在url_for' app/views/shared/_logged_in_writer_nav.html.haml:4:in _app_views_shared__logged_in_writer_nav_html_haml__656388632_107925510' 应用/views/layouts/application.html.haml:35:in block in _app_views_layouts_application_html_haml__193634629_107212530' app/helpers/application_helper.rb:15:in html5_haml_tag ' 应用程序/视图/布局/ application.html.haml:2:_app_views_layouts_application_html_haml__193634629_107212530' app/controllers/application_controller.rb:18:in error_generic'

回答

6

的问题是,您使用的是网址帮助程序而不提供用于应用程序的默认主机。 *_url的神奇之处在于,它会在链接中返回路径以及基础网址

例如,如果您的默认URL中的域名是example.com:

> link_to "All Blogs", root_url(:subdomain => false) 
#=> <a href="http://example.com/">All Blogs</a> 

您可以通过添加以下行环境配置文件的底部设置在config/environments/*.rb文件的默认主持人你”重新在

config.before_initialize do                                                  
    MyApp::Application.routes.default_url_options[:host] = 'myapp.com' 
end 

编辑:

您可以完全使用0避免这个问题

> link_to "All Blogs", root_path 
#=> <a href="/">All Blogs</a> 
相关问题