我是编程新手,需要一些帮助来在Ruby on Rails中创建基本计时器,该计时器可以通过在视图中单击按钮来启动和停止。对于每个停止的时间,应将时间条目保存在数据库中到相应的task
中。
我实际上不需要代码示例,但是从何处开始有一些帮助(代码会很好。)。
视图如下:
正如我所写,当按下Start
按钮时,应该将time-entry
(包含开始时间作为UNIX时间戳)保存到数据库中,并属于当前查看的任务。当再次单击Stop
时,当前时间应再次保存为UNIX时间戳。再次点击Start
,应创建一个新的time-entry
,依此类推。
如果可能,我不想使用任何宝石。
谢谢!
答案 0 :(得分:0)
老实说,有很多方法可以解决这个问题。我建议采用这种(更简单的)方法,该方法还应该教会您Ruby on Rails的所有工作原理。
每按一次按钮,在控制器中更新一次。在 tasks_controller.rb 中创建更新时间的新方法 start_time 和 stop_time 。更新 routes.rb 文件,以便您拥有方法的路径。在视图(在本例中为show.html.erb)中,创建两个重定向到控制器的按钮,如下所示:
<%= link_to "Start", start_time_task_path %>
<%= link_to "Stop", stop_time_task_path %>
最后,在控制器方法中,执行类似Task.update(start_time: Time.now)
的操作(取决于您的数据库结构。完成了。
另一种方法可能是为 Task 创建两个表单,每个表单代表一个动作。您也可以使用Javascript跟踪时间,并在单击“停止”后一次发送两个时间。
我希望这能回答您的问题。我已经尝试了尽可能少地编写代码,因此,您应该尝试阅读Rails guides或在线观看简单的视频教程,其中展示了MVC流程。