6

私は、タイトルで説明されているエラーに対する多数の解決策に取り組みました。

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

ただし、このプロジェクトでは、次のrailscastに示すように、サブドメインを使用するようにurl_for関数も変更しています。

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

したがって、環境設定で変数を設定するなど、このエラーに対する従来の回答は解決策ではないようです。

その他のヒントは次のとおりです。

  • これはまったく新しいセットアップです。プロジェクトのクローンを作成し、Ruby、Rails、Gemなどをインストールしました。
  • 「rvmimplode」を試し、何度もやり直しました
  • チームの他のメンバーは通常、Macでローカルに開発しますが、私はUbuntuマシンでリモートで開発しています。
  • 私はルートとして働いています(これは重要ですか?)

1889msで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:-else app / helpers / url_helper.rb:16:in url_for' app/views/shared/_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 in _app_views_layouts_application_html_haml__193634629_107212530' app/helpers/application_helper.rb:15:inhtml5_haml_tag'app / views / layouts / application.html.haml:2:in _app_views_layouts_application_html_haml__193634629_107212530' app/controllers/application_controller.rb:18:inerror_generic'

4

1 に答える 1

6

問題は、アプリケーションに使用するデフォルトのホストを提供せずに 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>
于 2012-10-18T20:53:50.307 に答える