kobasaです(´ω`*)今日から発展カリキュラムに突入です。
発展カリキュラムの重要ポイントはJavaScriptですね!親友のJ君がJavaScriptに詳しいんで
技術的な会話ができるレベルになりたいです。J待ってろよ!
58日目の勉強内容
サービスクラス
コントローラー内のコードの可読性を高めるために、 コントローラーの処理をモデル以外に切り出す方法。モデルのコードは肥大化しやすいためモデルに記述するのは避ける。
app/services/search_tweets_service.rb ディレクトリとルビーファイルを作成し、
サービスクラスとメソッドを記述。
class SearchTweetsService
# SearchTweetsServiceというクラスを定義
def self.search(search)
# searchというクラスメソッドを定義
if search != ""
Tweet.where('text LIKE(?)', "%#{search}%")
else
Tweet.all
end
end
end
tweets_controllerでメソッドを呼び出す。
def search
@tweets = SearchTweetsService.search(params[:keyword])
# サービスクラスSearchTweetsServiceのsearchメソッドを呼び出す
end
リレーショナルデータベースの言語・SQL
リレーショナルデータベース(RDB)のテーブル操作をするにはSQLという言語が必要になる。
モデルの仕組みであるActive Recordは、ORM(オブジェクト指向のプログラミング言語RubyをRDBのデータを扱うSQL言語に変換する技術)を持っているためテーブルの操作ができる。
SQL言語は後のカリキュラムに出てくるぽい。テーブルの操作にはSQLを学ぶ必要があることを覚えておく。
JavaScript
ブラウザ上の動きを担うプログラミング言語。ページ遷移なしで画面の表示を切り替えたり、
画面を更新せずにサーバーと通信できたりする。
console.logメソッド
””内の文字列を出力する。rubyでいうputsメソッドのようなもの。
console.log(” “)
変数定義
JavaScriptでは変数の定義方法が3つある。
- const 変数名 再定義・再代入ともに不可という制約がある。定数とも呼ぶ。
- let 変数名 再代入は可能だが、再定義は不可。
- var 変数名 再定義・再代入可能な古い書き方。あまり使われない。
他の人が見たときに視覚的にどのような変数であるか理解できるように、constとletを使い分けることが重要になる。
変更しても良い変数なのかが分からないと始めからコードを見る必要がある為、varはあまり使われない。
コメント