4

これをapplication.rbに追加しようとしました

config.action_controller.default_url_options = { :trailing_slash => true }

:trailing_slash => trueroutes.rb にあるだけでなく、

match '/download', to: 'welcome#download', via: 'get', :trailing_slash => true

しかし、どちらも機能していないようです。Rails 4.0 のドキュメントを検索しましたが、関連する情報が見つかりませんでした。ここで何が欠けていますか?

アップデート:

追加してみました

Rails.application.default_url_options[:trailing_slash] = true

これはfilter_parameter_logging.rb、プロジェクト全体で を見つけることができる唯一の場所Rails.application.*だからですが、それも機能していません。リリースの中でここの行を見つけ、4.0.4 を使用しています。これを間違った場所に追加していますか?そして、再チェックする前にサーバーを再起動しました。

簡単な質問で申し訳ありませんが、私が集めたものからtrailing_slash、主にそうではないにしても、ブラウザのURLにも反映されるはずがありませんか? これは、historyjs を使用するために必要なものだからです。

4

4 に答える 4

2

Trailing_slashは、 like not like/という名前の後のa を指します。page//page

ルートを間違って指定しました。

に変更します

match 'download/', to: 'welcome#download', via: 'get', :trailing_slash => true

ヘルパーtrailing_slash => trueに直接オプションを与えることで、これを実現する別の方法もあります。link_to

link_to 'Downloads', downloads_path(:trailing_slash => true)

これはRails 3で動作しますが、Rails 4 については不明です。

詳細については、このSOを参照してください。

于 2014-04-16T05:13:55.950 に答える
1

私はrails 4.0.2それが働いている私のために使用しています

ルート.rb

       get 'admin/update_price_qty' => 'admin#update_price_qty', :trailing_slash => true,:as  => "price"

コンソールで:-

     irb(main):003:0* app.price_path
     => "/admin/update_price_qty/"

ルート.rb

   match '/download', to: 'welcome#index', via: 'get', :trailing_slash => true,:as => "welcome_price"

コンソールで:-

   `irb(main):002:0> app.welcome_price_path
    => "/download/"`

しかし、これをapplication.rbに追加しようとしました

config.action_controller.default_url_options = { :trailing_slash => true }

動作していません。

于 2014-04-16T05:10:28.350 に答える
0

この行を次の場所に追加できますconfig/application.rb:

config.action_controller.default_url_options = { trailing_slash: true }

これを行うと、コントローラーまたはヘルパー内で Rails パス ヘルパーを呼び出すと、生成されたパス/の末尾に次のようになります。

class ApplicationController
  def index
    download_path # returns "/download/"
  end
end

module PathHelper
  def path
    download_path # returns "/download/"
  end
end

コントローラーとヘルパーの外部でパスヘルパーを使用する必要がある場合は、必要がありますがinclude Rails.application.routes.url_helpers、明らかに、これは上記のtrailing_slash構成を無視します:

class SomeClass
  include Rails.application.routes.url_helpers

  def path
    download_path # returns "/download"
  end
end

この場合、{ trailing_slash: true }パラメータとして追加する必要があります。

class SomeClass
  include Rails.application.routes.url_helpers

  def path
    download_path(trailing_slash: true) # returns "/download/"
  end
end
于 2015-01-06T20:09:41.090 に答える