質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

2回答

2398閲覧

Ruby on Rails で時間を測れてログが残るTodoアプリを作成したい

takumikai

総合スコア16

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

1クリップ

投稿2019/07/21 03:16

前提・実現したいこと

□ 質問

  • Rubyを使った、①経過時間を測る ②経過時間をTodoに紐付ける を方法を知りたい
  • コードというより、「何を学ぶ / 使う」と良いかが知れると嬉しいです

 → 調べたが、何を使うと実現できるのかわからず検索で引っかからなかった

□ 前提

  • ProgateのRubyonRailsコースを一通りやったぐらいのレベル
  • プログラミングの基礎を知っておくために、自分でサービスを作ってます

□ 作っているもの
「時間が測れて、振り返りしやすいTodoアプリ」

  • 日毎のTodoを作成できる
  • Todoごとに時間を測れる
    ー 1.TODO作成
    ー 2.TODOについてる再生ボタンを押す→停止ボタンを押す=経過時間が保存
    ー 3.1つのTodoに、複数の経過時間が紐づいて表示
    ー 4.Todoごとにその日の合計がわかる

↓Toggleというサービスと、ほぼ同じ機能↓
https://toggl.com/
![イメージ説明]
GIFの動作イメージはここをクリック

調べたこと

  • リストhoesという Rubyのフレームワーク?みたいなものを使うと似たようなことができるのは見つけた

RubyのGUIツールキット「Shoes」で簡単なタイマーアプリを作成する
http://kazuph.hateblo.jp/entry/2013/04/29/021214

 が、これだと応用/転用の仕方がわからず断念。

  • RubyではなくSQL?あたりを使うのが良いという記事も見たが、理解できず。。
  • Timeクラスを使って実装するのかな・・・?とも思っているが、転用の仕方がわかっておらず

https://www.sejuku.net/blog/20215

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

①経過時間を測る

Time クラスを使ってできます。

Time.now で現在の時刻を取得できますので、「再生ボタンを押したときの時刻」と「停止ボタンを押したときの時刻」の差から経過時間を算出することができます。

②経過時間をTodoに紐付ける

Todo の情報は DB に保存されていると思いますので、「再生ボタンを押したときの時刻」と「停止ボタンを押したときの時刻」も同様に保存しておけば良いと思います。


DB を操作するのに SQL はほぼ必須なので、基本的な SQL の知識は身につけておいた方が良いと思います。

また、Toggle のようなユーザーインターフェースを作りたいのであれば、JavaScript も学ぶ必要がありそうです。

Shoes! は GUI ライブラリなので、今回は使わないような気がします。

投稿2019/07/23 08:53

nskydiving

総合スコア6500

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takumikai

2019/07/23 22:01

ありがとうございます! DBに保存した後は、 RailsではなくSQLを使って、時間(例:合計、タスクごとの合計etc)を出力する〜 というイメージでしょうか? それのイメージであっていたら、かなりイメージがつきました!
takumikai

2019/07/23 22:04

ちなみに合わせてVue.jsも学ぼうと思ってまして、それで動的な表現は実装しようと考えています!
nskydiving

2019/07/23 22:18

Ruby on Rails 上から SQL を使って DB を操作するというイメージですね。 Ruby on Rails には「ActiveRecord」という DB を操作するための機能が備わっているため、SQL を書かなくても DB を操作することが可能です。 【初心者向け】RailsのActive Recordの解説&メソッドまとめ https://qiita.com/Ryokky/items/a1d0b4e86bacbd7ef6e8
takumikai

2019/07/27 11:10

ありがとうございます!!!やってみます!!
guest

0

こんにちは!
疑問を解決できるかどうかはわかりませんが、自分なりの回答を述べさせていただきます。

・Rubyを使った、①経過時間を測る ②経過時間をTodoに紐付ける を方法を知りたい

  1. バックエンド(Ruby on Rails)で、Todoを作成した時間、終了した時間をDBに保存する。
  2. フロントエンド(Javascript)で、経過時間(現在の時間 - 作成した時間)を計算・表示する。

コードというより、「何を学ぶ / 使う」と良いかが知れると嬉しいです

今回の問題としては、バックエンドとフロントエンドの役割を分けられていないということが問題ですので、
以下の勉強を行ってみてはいかがでしょうか?

・バックエンドとフロントエンドの違いをよく理解する。
・バックエンドの設計思想について理解する。(CRUD, RESTful)
・フロントエンドではどのようなことができるかを理解する。

投稿2019/07/22 01:56

junya451054

総合スコア69

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takumikai

2019/07/23 22:05

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問