【发布时间】:2016-07-26 18:55:57
【问题描述】:
我正在为客户构建一个调度平台。一项要求是根目录是今天的日程安排的显示页面。其他日子的时间表也都需要自己的节目页面。
我知道如何编写一个查询来找到今天的日程安排,但我很难弄清楚如何将它与我的路线文件联系起来。
这就是我目前所拥有的——现在我正试图让它按照今天的时间表呈现显示页面。我可以为此构建一个自定义视图,但我尽量不重复自己,它确实与常规节目完全相同相同。
在调度控制器中:
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'
我想知道——这是正确的方法吗?如果是这样,您能否为我的自定义控制器操作提供一些帮助?如果没有,你会怎么做?
【问题讨论】:
-
您希望
render "schedules/show"让它按计划呈现显示视图。 -
我如何告诉它呈现查询找到的时间表?我仍然收到错误消息,因为它正在尝试查找 id = today 的日程安排。
-
它将渲染显示视图。显示视图似乎使用
@schedule,因为您在今天的操作中定义了它,它将使用该时间表。
标签: ruby-on-rails ruby-on-rails-4 controller routing