Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 带有查询参数的Rails路由_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 带有查询参数的Rails路由

Ruby on rails 带有查询参数的Rails路由,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,不太确定涉及的术语,我没有发现任何搜索,但如果有人能给我指出正确的方向,我会再看一看 我有一个叫日记的控制器。我想有一个日期可选的URL的一部分。如果用户没有指定日期,他们会得到今天。如果指定了日期,则使用该日期。URL看起来像: localhost:3000/journals/7/ localhost:3000/journals/7/2013-01-22/ 第一个将显示今天的内容。第二个将显示1月22日的内容 我从这条路线开始: match '/journals/:id(/:date)',

不太确定涉及的术语,我没有发现任何搜索,但如果有人能给我指出正确的方向,我会再看一看

我有一个叫日记的控制器。我想有一个日期可选的URL的一部分。如果用户没有指定日期,他们会得到今天。如果指定了日期,则使用该日期。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
而不是:

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"

事实上,它应该会起作用。看起来您的routes.rb中有
资源:日志
,或与当前路由冲突的内容。请显示您的路由。rb不使用帮助程序而使用纯url字符串如何?对于复杂的路由,您必须使用url\u for或polimorphic\u path。我已经尝试了一些不同的方法。现在我有了
scope/:user\u id(/:date)“do resource:journal end
,它看起来像我想要的那样工作。url帮助程序将url构建为
localhost:3000/7/2013-01-22/journal
localhost:3000/journals/7/2013-01-22
 resources :journals
 match '/journals/:id(/:date)' => 'journals#show', :constraints => { :date => /\d{4}-\d{2}-\d{2}/ }, :as => "journals_date"