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

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

新規登録して質問してみよう
ただいま回答率
85.46%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

0回答

695閲覧

計算機能を実装したい!!!

masaaki.chiwawa

総合スコア2

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2021/02/12 16:19

Ruby on Rails で動的計算機能を実装したい。

現在Ruby on Railsで動的計算機能を実装して月間、毎日の支出を計算して表示する機能を実装しようとしています。
しかし実装ができません。
ローカル環境:docker/Ruby on Rails/GitHub
テーブル・modele:scoresテーブル/score.rb
月間、毎日の支出を計算➡️scoreとしています。
月間で機能を実装したらmonth~dayと併用しようと考えています。
viewはsores/new.html.erbです。

問題点がいくつかあります。
1:動的表示なのでJavaScriptでjsファイルを作成して動的に計算結果を表示する。
2:Rubyのインスタンスメソッドをmodeleにコーディングしてcontroller~view計算+結果を表示する
3:上記のどっちで実装するのが良いか判断できない。

問題点・1:動的表示なのでJavaScriptでjsファイルを作成して動的に計算結果を表示する。

js

1function ScoresInput () { 2 3 const MonthlyIncome = document.getElementById('monthly-income-score') 4 const Expense = document.getElementById('expense-score') 5 const ScoreMonth = document.getElementById('month-score') 6 7 Expense.addEventListener('keyup', function(){ 8 const MonthExpense = document.getElementById("expense-score").value; 9 const result = document.getElementById('month-score') 10 result = (`MonthlyIncome - MonthExpense`) 11 result.innerHTML = ScoreMonth 12 }) 13}; 14window.addEventListener('load', ScoresInput)

JavaScriptで実装する場合上記のコードで表示できないかトライ中です。

問題点・2:Rubyのインスタンスメソッドをmodeleにコーディングしてcontroller~view計算+結果を表示する

Ruby

1class ScoresController < ApplicationController 2 3 def index 4 end 5 6 def new 7 @score = Score.new 8 @month = @score.month_score(params[:user_id]) 9 score_month = x 10 monthly_income = y 11 expense = z 12 end

model

Ruby

1class Score < ApplicationRecord 2 3 with_options presence: true do 4 validates :score_month 5 validates :score_day 6 validates :score_year 7 validates :monthly_income 8 validates :pay 9 validates :pay_all 10 validates :expense 11 end 12 13 def month_score(add) 14 15 def initialize(score_month, monthly_income, expense) 16 @score_month = x 17 @monthly_income = y 18 @expense = z 19 end 20 21 def add 22 @add = self.puts "#{@monthly_income - @expense = @score_month}" 23 end 24 end 25 26 month_score = Score.new(score_month, monthly_income, expense) 27 month_score.add 28 29 belongs_to :user 30end

sores/new.html.erb

html

1<% if @month.length > 0 do %> 2 <% @month do %> 3 <div class="score-input"> 4 <p class='score_month_title'>月間の計算をしよう!</p> 5 <div class="weight-bold-text-question-text"> 6 <span>月収<br>(¥0〜9,999,999)</span> 7 <a class="question" href="#">?</a> 8 </div> 9 <div class="score_month_content"> 10 <div class="monthly_income_text"> 11 <span>月収</span> 12 <span class="indispensable">必須</span> 13 <span class="score-yen">¥</span> 14 <%= f.text_field :monthly_income, class:"score_monthly_income_input", id:"monthly-income-score", placeholder:"例)300" %> 15 </div> 16 </div> 17 <div class="score_month_content"> 18 <div class='score_month_expense_text'> 19 <span>出費</span> 20 <span class="indispensable">必須</span> 21 <span class="score-yen">¥</span> 22 <%= f.text_field :expense, class:"score_month_expense_input", id:"expense-score", placeholder:"例)300" %> 23 </div> 24 </div> 25 <div class="score_month_content"> 26 <div class='score_month_text'> 27 <span>月間の出費</span> 28 <span class="indispensable">必須</span> 29 <span class="score-yen">¥</span> 30 <%= f.text_field :score_month, class:"score_month_input", id:"month-score", placeholder:"例)300" %> 31 </div> 32 </div> 33 </div> 34 <% end %>

###問題点3:上記のどっちで実装するのが良いか判断できない。
独学でDocker環境を構築して現在開発していますが、本番環境になった場合を考えるとJavaScriptだけで機能を実装するかRUbyした方が効率的か判断ができていません。知識不足です。

エラーメッセージ

NameError in ScoresController#new undefined local variable or method `score_month' for #<Class:0x00007f44485dcf30> Extracted source (around line #26): 24 25 26 27 28 29 end month_score = Score.new(score_month, monthly_income, expense) month_score.add belongs_to :user Rails.root: /app Application Trace | Framework Trace | Full Trace app/models/score.rb:26:in `<class:Score>' app/models/score.rb:1:in `<main>' app/controllers/scores_controller.rb:7:in `new' Request Parameters: {"user_id"=>":user_id"} Toggle session dump Toggle env dump Response Headers: None

試したこと

格言語のリファレンスを参照、Qiita記事を読み漁りひたすら模写してみる。
家計簿アプリを例にコーディングするが思い通りの表示ができない。

補足情報

初めてteratailの投稿になります。
質問が下手と感じる方も多いと思いますが、問題点のどれか1つでも良いのでアンサーいただけると助かります。
現在プログラミングスクルールを卒業してポートフォリオ作成中です。
本番環境はスクールで習わなかった、Docker,AWS,CircleCi,ECS,EC2で考えています。
罵倒でも何でも受け付けます。
少しでも読んでいただいた、あなたの知識をお貸しください。

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

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

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

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

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

hentaiman

2021/02/12 16:32

> 上記のどっちで実装するのが良いか判断できない。 特別な拘りや理由が無ければ両方実装してみて可読性の良い方で良いです。 やむを得ず常に劇的に重い計算をする場合はサーバーが負担を負うかユーザー端末に負担を負わせるかで判断します。
masaaki.chiwawa

2021/02/12 16:36

ご回答ありがとうございます! 特に拘りはないので両方向からトライしてみます! 貴重なご意見ありがとうございます♪
hentaiman

2021/02/12 16:44

後docker頼みの開発は止めた方が。 docker無くても環境構築出来るけどdockerあると楽できるわーって言えるスキルなら問題無いけど、dockerが無いと環境構築時間かかっちゃうとかそもそも環境構築自体が出来ないってなりそうなら使わない方が良いかな 趣味なら好きにすれば良いけど
masaaki.chiwawa

2021/02/12 16:50

レスポンス早いですね! アンサーありがとうございます♪ 参考にさせていただきます!本番ではコンテナで環境構築してみたいので、頑張ってみて時間がかかりそうならシフトしてみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問