テキスト/4652の記述

function check() {
  // 表示されているすべてのメモを取得している
  const posts = document.querySelectorAll(".post");
  posts.forEach(function (post) {
     if (post.getAttribute("data-load") != null) {
      return null;
    }
    post.setAttribute("data-load", "true");
    // メモをクリックした場合に実行する処理を定義している
    post.addEventListener("click", () => {
      // どのメモをクリックしたのか、カスタムデータを利用して取得している
      const postId = post.getAttribute("data-id");
      // Ajaxに必要なオブジェクトを生成している
      const XHR = new XMLHttpRequest();
      // openでリクエストを初期化する
      XHR.open("GET", `/posts/${postId}`, true);
      // レスポンスのタイプを指定する
      XHR.responseType = "json";
      // sendでリクエストを送信する
      XHR.send();
      // レスポンスを受け取った時の処理を記述する
      XHR.onload = () => {
        if (XHR.status != 200) {
          // レスポンスの HTTP ステータスを解析し、該当するエラーメッセージをアラートで表示するようにしている
          alert(`Error ${XHR.status}: ${XHR.statusText}`);
          // 処理を終了している
          return null;          
        }
        // レスポンスされたデータを変数itemに代入している
        const item = XHR.response.post;
        if (item.checked === true) {
          // 既読状態であれば、灰色に変わるcssを適用するためのカスタムデータを追加している
          post.setAttribute("data-check", "true");
        } else if (item.checked === false) {
          // 未読状態であれば、カスタムデータを削除している
          post.removeAttribute("data-check");
        }
      };
    });
  });
}
setInterval(check, 1000);

rails routesの読み方について

Prefix    Verb   URI Pattern                    Controller#Action

room  DELETE /rooms/:id(.:format)   rooms#destroy

 

上記URIパターンは、何のroom_pathを削除すべきかを示している。

今回はidを削除すればよい。

 

idが指定されている場合は、今のところインスタンス変数を記述することが多い。

例:

<%= link_to "チャットを終了する", room_path(@room), method: :delete %>

 

 

rubyドリル22

下記VScodeについて

even?メソッドは対象の値に対して偶数、奇数を判別する。

count_evensの実引数を配列にすることで仮引数numsに渡している。

def count_evens(nums)
 count = 0
 nums.each do |num|
 if num.even?
  count += 1
 end
 end
 puts count
end

count_evens([2, 2, 0])

rubyドリル21

下記、VScode記述について

if talkingとするとtalkingにtrueが入っている時に真と判断される

時間の記述は夜20時から翌朝7時まで

 

&&:

AかつB

||:

AまたはB

結果:

OKが出力される

 

def parrot_trouble(talking, hour)
 if talking && (hour < 7 || hour > 20)
  puts "NG"
 else
  puts "OK"
 end
end

talking = true
hour = 6
parrot_trouble(talking, hour)

プログラミング学習目標(残り121日)

目標:

・3月26日(金)最終課題提出

・2月28(日)までに、furimaアプリ課題を終了させる

・オンスケジュールの2週早い進捗を心掛ける

 

記念すべき初投稿。

2週早い進捗は簡単ではないぞ、もう一度気を引き締めよう。

 

人生崖っぷち、楽しもう!