Rails 3.2.13 の使用。
サブ URI から Rails アプリケーションを提供するために、Nginx と Unicorn をセットアップしました。リソースへのリンクを送信する必要があるビューがいくつかあるため、モデルでパス ヘルパーを使用しています。
def to_exhibit()
return {
:label => self.id,
:name => self.name,
:edit_path => Rails.application.routes.url_helpers.edit_vehicle_path(self),
}
end
これにより のような URL が生成されますがhttp://localhost:8080/vehicles/10/edit
、実際に必要なのはhttp://localhost:8080/app/vehicles/10/edit
(/app がサブ URI である) ことです。edit_vehicle_path
ビューから直接呼び出す場合、これは正常に機能します。以前、独自のヘルパーを作成して、この問題を回避しました。
module ApplicationHelper
def self.sub_uri_path(path)
root = Rails.application.config.relative_url_root
return '%s%s' % [ root, path ]
end
end
config.relative_url_root
私のファイルで定義されていconfig/environment
ます。これは機能しますが、それを行うには適切な方法が必要であり、さらに、1年後に必然的に忘れてしまうときにこれを維持する必要はありません.