簡體   English   中英

帶有查詢參數的Rails路由

[英]Rails Routes With Query Parameters

不確定涉及的術語,我沒有找到任何搜索,但如果有人能指出我正確的方向,我會再看看。

我有一個名為Journals的控制器。 我希望有一個日期可選的URL部分。 如果用戶沒有指定日期,他們今天就會得到。 如果指定了日期,則使用它。 網址如下:

localhost:3000/journals/7/
localhost:3000/journals/7/2013-01-22/

第一個將顯示今天的內容。 第二個將顯示1月22日的內容。

我從這條路線開始:

match '/journals/:id(/:date)', to: 'journals#show'

和相應的控制器

class JournalsController < ApplicationController
  def show
      @user = User.find(params[:id])
      if params[:date]
        @date = Date.parse(params[:date])
      else 
        @date = Date.today
      end
  end  
end

這工作正常,但我如何使用網址助手生成網址? 我試過這個:

<%= link_to "< Yesterday", journal_path(id: @user, date: @date.yesterday) %>

這似乎工作得很好,但它給了我一個像這樣的網址:

localhost:3000/journals/7?date=2013-01-22

代替:

localhost:3000/journals/7/2013-01-22

如何保持URL一致,如/ journals /:id /:date

如果有更好的方法,請告訴我。

在路線中試試這個:

 resources :journals
 match '/journals/:id(/:date)' => 'journals#show', :constraints => { :date => /\d{4}-\d{2}-\d{2}/ }, :as => "journals_date"

暫無
暫無

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

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