2016-04-06 12 views
0

私はクライアント用のスケジューリングプラットフォームを構築しています。 1つの要件は、ルートが今日のスケジュールのショーページであることです。他の日程のスケジュールにはそれぞれ自分のショーページが必要です。レールを毎日ルート変更する方法は?

私は今日のスケジュールを見つけるためのクエリを書く方法を知っていますが、ルートファイルとの接続方法を理解するのは苦労しています。

これまで私がこれまで持っていたことは、今、私は今、ショーページを今日のスケジュールでレンダリングしようとしています。私はこのためのカスタムビューを構築することができますが、私は自分自身を繰り返さないようにしようとしています、それは本当に正確に通常のショーと同じビューです。スケジュールコントローラで

def show 
    @schedule = Schedule.find(params[:id]) #this is actually done in a :set_schedule before_action callback, but I'm show it it here for clarity. 
    end 

    def today 
    @schedule = Schedule.find_by_date("#{Time.now.year}-#{Time.now.month}-#{Time.now.day}") 
    if @schedule 
     render 'schedules/show' #How do I tell it to render the show page for @schedule here?? 
    else 
     render 'welcome#index' 
    end 
    end 

私はエラーをスローmyapp.com/schedules/todayをヒットしてみてください(=今日のIDを持つ予定はありません)。私はこの作業を得れば、私はちょうど私のroutes.rbをしてこれを行うことができますことを想像

root 'schedules#today' 

私が知りたい - これは正しいアプローチですか?もしそうなら、あなたは私のカスタムコントローラーアクションについていくつかの助けを提供できますか?もしそうでなければ、あなたはどうしますか?

+0

'render 'スケジュール/ show"を使用して、スケジュール内の表示ビューをレンダリングします。 –

+0

しかし、クエリが検出するスケジュールをレンダリングする方法を教えてください。私はまだid =のスケジュールを見つけようとしているので、まだエラーが出ています。 – nilatti

+0

これは、表示ビューをレンダリングします。ショー・ビューは、そのスケジュールを使用するtodayアクション内で定義したように '@ schedule'を使用するように見えます。 –

答えて

1

私はあなたのルートファイルにschedules/todayを傍受し、todayをshowアクションのIDとして扱うことになるresource :schedulesエントリを持っていると思います。

収集方法todayをそのリソースルート定義に追加する必要があります。

resources :schedules do 
    collection do 
    get :today 
    end 
end 

これらの行に何かが表示されます。

+0

それはうまくいった!ありがとうございました。私は入手しました:今日はroutes.rbファイルですが、その収集ブロックの中にはありません。 – nilatti

関連する問題