2

カスタムルートをレールと連動させて日付クエリを実行する方法を見つけようとしています。できればこのレポートを呼びたいと思います。だから私はブラウザで自分のルートにアクセスし、次のようになります。

http://localhost:3000/trips/report

Couldn't find Trip with id=report

レポートをIDとして読み込もうとしているようですか?ここでどこが間違っているのかよくわかりませんか?私のroutes.rbファイルには、次のエントリを作成しました。

match 'trips/report'    =>  'trips#report'

私の旅行コントローラーで次のように。

def report
  @trips.all :condition => ["DATE(date) = DATE(?)", Time.now]

  respond_to do |format|
    format.html
    format.json { render json: @trips }
  end
end

私はおそらく非常に愚かなことをしています!うまくいけば、誰かが正しい軌道に沿って私を助けることができますか?

4

1 に答える 1

3

あなたは確かtripsにあなたの中でリソースを宣言しており、リソースによって生成されroutes.rbたルートは後で定義されGET 'trips/:id'たものよりも高い優先度を持っていますmatch 'trips/report'(Railsは最初の一致ルールを使用します)。その場合は、次のreportようにルートを宣言します。

resources trips do 
  collection do
    get 'report'
  end
end 

詳細については、Railsルーティングガイドのこの章を参照してください。

于 2013-01-04T17:30:13.037 に答える