railsでタスクを完了したら経験値をもらって閾値を超えたらレベルアップするアプリを作っています。まずは経験値を取得するところから着手しようと思うのですが、その記述がわからなくて詰んでいます。タスクにポイントが設定されていてそれが完了したときにポイントを経験値として取得していく流れです。
SQL
1SELECT sum(tasks.point)` FROM users 2 LEFT JOIN tasks ON users.id = tasks.user_id 3 GROUP BY users.id
このようにSQLで取得できるとアドバイスをもらったのですがsequel proで値は確認できるものの、どのようにアプリの実装に使うのかがわかりません。
これと違う方法(ruby)もしくはこの使い方を教えていただけたらと思います。
以下テーブルになります
## users テーブル | Column | Type | Options | | ------------ | ---------- | ----------------------- | | name | string | null: false | | email | string | null: false | | password | string | null: false | | player_level | integer | null: false, default: 1 | | level_id | references | foreign_key: true | ## Association - has_many :tasks - belongs_to :level ## tasks テーブル | Column | Type | Options | | ------- | ---------- | ------------------------------ | | content | string | null: false | | user_id | references | foreign_key: true | | point | integer | null: false, default: 1 | ## Association - belongs_to :user ## レベルテーブル | Column | Type | Options | | --------- | ---------- | ------------------------------ | | number | integer | | | threshold | integer | | ## Association - has_many :users
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/01 02:31
2020/10/01 04:12