我正在为客户建立一个调度平台。一个要求是根是今天计划的显示页面。其他日子的日程表也都需要自己的节目页面。
我知道如何编写一个可以找到今天日程安排的查询,但我很难弄清楚如何将其与我的路线文件相关联。
这是我到目前为止所拥有的 - 现在我正试图让它以今天的时间表呈现展示页面。我可以为此构建一个自定义视图,但我试图不重复自己,它确实完全与常规节目相同的视图。
在时间表控制器中:
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 = today的日程表)。
我想,一旦我开始工作,我可以在我的routes.rb中执行此操作:
root 'schedules#today'
我想知道 - 这是正确的做法吗?如果是这样,您能为我的自定义控制器操作提供一些帮助吗?如果没有,你会怎么做?
答案 0 :(得分:1)
我敢打赌你的路线文件中有一个resource :schedules
条目,它会截取schedules/today
并将today
视为show动作的ID。
您需要将收集方法today
添加到该资源路由定义。
resources :schedules do
collection do
get :today
end
end
这些方面的东西应该让你到那儿!