0

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年後に必然的に忘れてしまうときにこれを維持する必要はありません.

4

2 に答える 2

0

:script_name パラメータを使用して設定できます。

Rails.application.routes.url_helpers.edit_vehicle_path(self, :script_name => '/app')

http://zergsoft.blogspot.jp/2014/04/using-non-root-mount-point-with-rails-3.html

于 2014-04-11T14:18:35.703 に答える