ruby-on-rails – 子域名ActionView :: Template ::错误(缺少要链接的主机!)

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 子域名ActionView :: Template ::错误(缺少要链接的主机!)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经完成了标题中描述的错误的众多解决方案.

ActionView :: Template :: Error(缺少要链接的主机!请提供:host参数,设置default_url_options [:host],或将:only_path设置为true):

但是,该项目还修改了url_for函数以使用子域,如此railscast中所示:

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

因此,传统的错误答案,例如在我的环境设置中设置变量似乎不是解决方案.

以下是一些其他提示

>这是一个全新的设置,我刚刚克隆了一个项目并安装了ruby,铁轨,宝石等
>我尝试了“rvm implode”,并开始多次
>团队的其他成员通常在Mac上本地开发,而我正在远程开发Ubuntu机器.
>我以root身份工作(这有关系吗?)

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

ActionView :: Template :: Error(缺少要链接的主机!请提供:host参数,或将:only_path设置为true):
1:%header.menu {:role => “旗帜”}
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: –
app / helpers / url_helper.rb:16:in url_for’
应用程序/视图/共享/ _logged_in_writer_nav.html.haml:4:in_app_views_shared__logged_in_writer_nav_html_haml__656388632_107925510′
app / views / layouts / application.html.haml:35:在_app_views_layouts_application_html_haml__193634629_107212530中的块中
应用程序/佣工/ application_helper.rb:15:inhtml5_haml_tag”
app / views / layouts / application.html.haml:2:in _app_views_layouts_application_html_haml__193634629_107212530′
应用程序/控制器/ application_controller.rb:18:inerror_generic”

解决方法

问题是您正在使用url帮助程序而不提供用于应用程序的默认主机. * _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

编辑:

您可以使用* _path完全避免此问题

> link_to "All Blogs",root_path
#=> <a href="/">All Blogs</a>

猜你在找的Ruby相关文章