Rails 3.1.3按日期自定义路由

fox*_*web 4 url ruby-on-rails ruby-on-rails-3

如何为这条路线制作路径助手?

resources :news

match 'news/:year/:month/:day' => 'news#show',
    :constraints => { :year => /\d{4}/, :month => /\d{2}/, :day => /\d{2}/ },
    :as => 'newsdate'
Run Code Online (Sandbox Code Playgroud)

我尝试了很多方法,但它不起作用:

link_to news.created_at.strftime '%d.%m.%Y ', newsdate_path(:year => '2011', :month => '11', :day => '11')
Run Code Online (Sandbox Code Playgroud)

我通过GET http:// localhost:3000/news获得此行的应用程序错误:

ArgumentError in News#index

    Showing /home/foxweb/work/dev/app/views/news/index.html.slim where line #6 raised:

    wrong number of arguments (2 for 1)
Run Code Online (Sandbox Code Playgroud)

如何正确的方式?

PS http:// localhost:3000/news/2011/11/11工作正常.

Ole*_*nyk 5

哦,这是常见的错误.你需要strftime在大括号中加入参数.

link_to news.created_at.strftime('%d.%m.%Y'), newsdate_path(:year => '2011', :month => '11', :day => '11')
Run Code Online (Sandbox Code Playgroud)

就这样!