Nic*_*ith 7 ruby-on-rails ruby-on-rails-3
不确定涉及的术语,我没有找到任何搜索,但如果有人能指出我正确的方向,我会再看看.
我有一个名为Journals的控制器.我希望有一个日期可选的URL部分.如果用户没有指定日期,他们今天就会得到.如果指定了日期,则使用它.网址如下:
localhost:3000/journals/7/
localhost:3000/journals/7/2013-01-22/
Run Code Online (Sandbox Code Playgroud)
第一个将显示今天的内容.第二个将显示1月22日的内容.
我从这条路线开始:
match '/journals/:id(/:date)', to: 'journals#show'
Run Code Online (Sandbox Code Playgroud)
和相应的控制器
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
Run Code Online (Sandbox Code Playgroud)
这工作正常,但我如何使用网址助手生成网址?我试过这个:
<%= link_to "< Yesterday", journal_path(id: @user, date: @date.yesterday) %>
Run Code Online (Sandbox Code Playgroud)
这似乎工作得很好,但它给了我一个像这样的网址:
localhost:3000/journals/7?date=2013-01-22
Run Code Online (Sandbox Code Playgroud)
代替:
localhost:3000/journals/7/2013-01-22
Run Code Online (Sandbox Code Playgroud)
如何保持URL一致,如/ journals /:id /:date
如果有更好的方法,请告诉我.
在路线中试试这个:
resources :journals
match '/journals/:id(/:date)' => 'journals#show', :constraints => { :date => /\d{4}-\d{2}-\d{2}/ }, :as => "journals_date"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8118 次 |
| 最近记录: |