簡體   English   中英

帶有嵌套路由的 Rails 路由約束

[英]Rails routing constraints with a nested route

讓我簡要解釋一下我希望路由如何工作,然后向您展示我正在使用的代碼。 我希望發生以下情況:

hearing-providers/any-text-but-a-state-abbreviation -> dispensers controller

hearing-providers/TX -> regions#show

hearing-providers/TX/dallas -> cities#show

這是我正在嘗試的代碼:

  resources "hearing-providers", controller: 'dispensers', as: 'dispensers'  do 
    constraints( region_id: /A[KLRZ]|C[AOT]|D[CE]|FL|GA|HI|I[ADLN]|K[SY]|LA|M[ADEINOST]|N[CDEHJMVY]|O[HKR]|P[AR]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY]/ ) do
      collection do
        get ':state_abbreviation' => 'regions#show', :as => :region
        get ':state_abbreviation/:city_name' => 'cities#show', :as => :city
      end
    end
  end

問題是這樣的:

不管路徑是什么,我總是被路由到區域控制器。 約束設置似乎不起作用。

您已經為region_id定義了一個約束,但您沒有在您的路線中使用它。 將您的約束更改為:

constraints( state_abbreviation: /A[KLRZ]|C[AOT]|D[CE]|FL|GA|HI|I[ADLN]|K[SY]|LA|M[ADEINOST]|N[CDEHJMVY]|O[HKR]|P[AR]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY]/ ) do

一切都應該工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM