オリアプ#3

 
今回は演算処理機能を追加しようと思います。
初めに、
def enzan
if @memo.content.include?("p")
puts "テスト成功"
end
end
private内に演算メソッドを作りました。内容的には、@memoには全ての情報が入っていて、その中にあるcontentという実際にメモした内容にinclude?でpが含まれているか確認してます。そして、含まれていたら、putsの内容が出力されます。
実際に手を動かしてどんな動きをするのか、確かめるのが先です!!!笑
 
最初、newアクションに@memosがあるから、それを使おうとか脳死で考えましたが、もちろん、メモを保存するのはcreateアクションなので、「情報が空です」とエラーが発生しました。なので、createアクションの情報を@memoに入れて、再利用することで、出力されました。
 
さて、ここで出力される場所はターミナルです。私が考えているのは、Web上に表示すいる必要があるので、if文の結果をcreateのviewに反映する必要があります。ということで、変数を作り出力しようとしたが、情報が空ですとなった。
 
「とういうか、そもそもviewに記述しちゃえば、変数に入れて移動させる必要ないじゃん!」と考えました。しかし、やはりターミナルに出力される。それに、each do で繰り返しているから、テーブル情報の種類(5種)の数、出力されてしまう...
ということで、他の出力させたい文字はどうやって出力されているか考えた。単純だった。@memo.cotentで出力されてる。変数で出力させれば、いいのだ。
今回の私は、1つずつ処理の動きを確認していこうと考えた。それが裏目に出てしまった。サイトに反映するときにputsを使った記憶なんてない。先に演算処理を追加して、その処理結果を変数に代入して、出力する。
 
『演算処理について考えてみた。』
・+ , - , * , / が含まれているとき、という処理はinclude?で達成

・どの値とどの値を計算するのか
上記が重要になってくると思う。そこで、+ , - , * , / 以前と以降で分ければいいのではないかと考えた。しかし、その場合、二種類の計算しかできない。三種類になった時に不具合が発生する。
ターミナルでの動作であれば、gets.to_iで入力させて、引数として渡したりすればできていたが、例外の入力もある中だとそうもいかない。
計算アプリについて調べてみます。