如何每天更换导轨根?

时间:2016-04-06 11:36:57

标签: ruby-on-rails ruby-on-rails-4 controller routing

我正在为客户建立一个调度平台。一个要求是根是今天计划的显示页面。其他日子的日程表也都需要自己的节目页面。

我知道如何编写一个可以找到今天日程安排的查询,但我很难弄清楚如何将其与我的路线文件相关联。

这是我到目前为止所拥有的 - 现在我正试图让它以今天的时间表呈现展示页面。我可以为此构建一个自定义视图,但我试图不重复自己,它确实完全与常规节目相同的视图。

在时间表控制器中:

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'

我想知道 - 这是正确的做法吗?如果是这样,您能为我的自定义控制器操作提供一些帮助吗?如果没有,你会怎么做?

1 个答案:

答案 0 :(得分:1)

我敢打赌你的路线文件中有一个resource :schedules条目,它会截取schedules/today并将today视为show动作的ID。

您需要将收集方法today添加到该资源路由定义。

resources :schedules do 
  collection do
    get :today
  end
end

这些方面的东西应该让你到那儿!