これから作っていく簡単なWebアプリの作成メモ(自分の備忘)です。
自分用なのであまり凝りすぎないように書いていきたい。
##今回やったこと
###ユーザーの削除
削除についてもスケジュールと同様に実装する。
def destroy
@users = User.find(params[:id])
@users.destroy
redirect_to users_url, notice: "ユーザーを削除しました。"
end
動作も確認できた。
###小リファクタリング
前回記事で触れたが、
...また、意図していないことだったが、ユーザー用のjavascriptを用意しなくともユーザー一覧のテーブルの行をクリックするとユーザー詳細画面に遷移できてしまった。
これは現状でどの画面でもschedules.jsが読み込まれており、スケジュールの実装の時と同様にクラスやデータ属性を整えると、同じように遷移できてしまうようになっていることが原因。
→理想的には、全画面共通のjavascriptが基本処理としてあり、そこに画面ごとに個別処理のjavascriptを使って実装を進めるのが良いと思う。
これは保守性の面でダメなので、ひとまず画面共通用の処理を作ってそこにテーブル行からの遷移処理を移設する。
$ mkdir ./app/javascript/application
$ touch ./app/javascript/application/yaque_app.js
↑これを共通処理の置き場所にしていこう。
(略)
require("application/yaque_app.js")
jQuery(document).on('turbolinks:load', function() {
$(".clickable-row").css("cursor","pointer").on('click', function() {
location.href = $(this).data("href");
});
});
こんな感じに整理していくことにした。
※下記はいろいろ試しているときに探して読んだWeb記事。
Ruby on RailsにおけるJavascriptファイルの取り扱い(Rails6)
railsのapp.jsで使う「//=」と「import」の違いがわかりません
特に下は、なんか今までなあなあで済ませてきた部分が少し分かったので、個人的にはためになった。
今回は時間ないのでここまで。
次回はいよいよBootstrapを導入して、コードも手入れしていこうと思う。
(むしろなぜ今までやらなかったのか...)