0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

草野球の出欠確認Webアプリを作ろう! part.10

Last updated at Posted at 2021-05-20

これから作っていく簡単なWebアプリの作成メモ(自分の備忘)です。
自分用なのであまり凝りすぎないように書いていきたい。

<<前回の記事

##今回やったこと

###ユーザーの削除

削除についてもスケジュールと同様に実装する。

app/controllers/users_controller.rb
def destroy
  @users = User.find(params[:id])
  @users.destroy
  redirect_to users_url, notice: "ユーザーを削除しました。"
end

無題.png

無題.png

動作も確認できた。

###小リファクタリング

前回記事で触れたが、

...また、意図していないことだったが、ユーザー用のjavascriptを用意しなくともユーザー一覧のテーブルの行をクリックするとユーザー詳細画面に遷移できてしまった。
これは現状でどの画面でもschedules.jsが読み込まれており、スケジュールの実装の時と同様にクラスやデータ属性を整えると、同じように遷移できてしまうようになっていることが原因。
→理想的には、全画面共通のjavascriptが基本処理としてあり、そこに画面ごとに個別処理のjavascriptを使って実装を進めるのが良いと思う。

これは保守性の面でダメなので、ひとまず画面共通用の処理を作ってそこにテーブル行からの遷移処理を移設する。

$ mkdir ./app/javascript/application
$ touch ./app/javascript/application/yaque_app.js

↑これを共通処理の置き場所にしていこう。

app/javascript/packs/application.js

require("application/yaque_app.js")
app/javascript/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を導入して、コードも手入れしていこうと思う。
(むしろなぜ今までやらなかったのか...)

次回の記事>>

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?