gpt4 book ai didi

ruby-on-rails - 子域 + ActionView::Template::Error(缺少要链接的主机!)

转载 作者:数据小太阳 更新时间:2023-10-29 07:06:14 25 4
gpt4 key购买 nike

我已经解决了标题中描述的错误的众多解决方案。

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

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

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

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

这里有一些其他的提示:

  • 这是一个全新的设置,我刚刚克隆了一个项目并安装了 ruby​​、rails、gems 等
  • 我已经多次尝试“rvm implode”并重新开始
  • 团队的其他成员通常在 Mac 上进行本地开发,而我则在远程 Ubuntu 计算机上进行开发。
  • 我以 root 身份工作(这有关系吗?)

在 1889 毫秒内完成 500 个内部服务器错误

ActionView::Template::Error(缺少要链接的主机!请提供 :host 参数,设置 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 => "Contently", :src => "/images/logo_beta_premium.png"}/ 7:-否则 app/helpers/url_helper.rb:16:in url_for'
应用程序/ View /共享/_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:in block 在 _app_views_layouts_application_html_haml__193634629_107212530'
app/helpers/application_helper.rb:15:in
html5_haml_tag' app/views/layouts/application.html.haml:2:in _app_views_layouts_application_html_haml__193634629_107212530'
应用程序/ Controller /application_controller.rb:18:in
error_generic'

最佳答案

问题是您在使用 url 帮助程序时没有提供用于应用程序的默认主机。 *_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-on-rails - 子域 + ActionView::Template::Error(缺少要链接的主机!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12960270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com