ずみーBlog

元クラゲ研究者(見習い)の92年生まれがエンジニアを目指しながら日々寄り道するブログです。

Railsで特定のページで特定のJSファイルを読み込む

Ruby on Railsでは、app/assets/javascripts配下のJSファイルは自動で読み込まれるのですが、一部のページでしか使わないようなファイルを全ページで毎回読み込むのはなんか気持ち悪いですよね。

こちらの記事を参考に、javascript_include_tagメソッドを使って、ビュー側から特定のJSファイルを読み込みに行けるような設定をしてみました。

手順

  1. ツリー読み込みの停止(今回は不要だった)
  2. プリコンパイルへの追加
  3. javascript_include_tagによるJSファイル読み込み
続きを読む

Railsアプリケーション内で共通で使う定数を定義する(config/initializers/constants.rb)

やりたいこと

メルカリみたいなアプリを作っています。 例えば、「手数料10%」の10%のように、アプリケーション内で共通で使いたい定数をあちこち別個に書くのってよろしくないですよね。できれば1個にまとめたい。

定数定義用のファイル作成

config/initializers配下にconstants.rbを作成し、Constantsモジュールを定義します。このディレクトリはアプリケーション起動時に読み込まれます。

続きを読む

Active Storageで添付ファイルを付けられるようにする

チャットアプリでもECサイトでも、画像や動画が添付できるのは当たり前ですよね。そんなわけで、Active StorageというGemを使ってRailsアプリにファイルアップロード機能を追加する方法を学びました。

画像加工ツールたち

名称 区分 目的
Active Storage Gem 簡単に画像アップロード機能が作れる
ImageMagick ツール コマンドラインから画像の保存形式の変更などが行える
mini_magick Gem ImageMagickrailsから使えるようにしてくれる
image_processing Gem 画像サイズを調整してくれる
続きを読む

特定のコントローラーで特定のアクションの場合を除いて、ユーザをログイン画面にリダイレクトしたい

Amazonでもメルカリでもそうですが、ログインしなくてもトップページとかは見れますよね。

きほん

deviseの:authenticate_user!メソッド

ログインしていないユーザをログイン画面へリダイレクトするメソッドです。

定石

よくある書き方は、application_controllerのbefore_actionにexceptオプションで例外をつけるやり方です。例えば、indexアクションを除いてログイン画面へのリダイレクトをする場合は以下のようにします。

続きを読む

理性的な人なら誰にも疑えない、それほど確実な知識

エンジニアスクールおかげで、今まで敬遠していた多くの行為が抵抗なくできるようになりました。 「文章を書いて公開する」というのもそれです。 自分が何かを調べて理解した過程を、拙い文章でもいいからまとめて公開することで、知識定着に役立つだけでなく、「調べる」や「メモをとる」といった、直接コードを書かないインプットの時間までもが常にアウトプットに紐づいているのが実感でき、大変満足感が得られることがわかりました。

新しい試み

ということで(どういうことで?)、 今日は本の話です。 ペソアの「不穏の書」とラッセルの「哲学入門」を同時に読んでいます。

哲学入門 (ちくま学芸文庫)

哲学入門 (ちくま学芸文庫)

実在と現象

続きを読む

ローカルサーバをkill

どうも、ずみーです。 過去10回以上忘れて調べ直していることがあります。 それが、localhost:3000のkill。

開発中にローカル環境でサーバを立ち上げようとしたら、別プロセスですでに起動中、みたいな。 生来の飽きっぽさが原因で常にいろんなやりかけ開発が立ち上げられている状態なので、毎回、「あれ、どこで3000番使ってんだっけ?」ってなります。

調べ直しに終止符を

続きを読む

【正規表現初心者】 Passwordを英数字混在かつ6文字以上に制限したい

どうも、ずみーです。 Ruby on Railsで会員登録/ログイン機能付きのアプリを作っています。パスワードにアルファベットと数字が混在していないと登録できないような制限を付けたくなりました。

正規表現の基礎的な部分を復習しつつ、実装していきたいと思います。

答え

結局、以下の正規表現で実現できるらしいです。(6文字以上の制限の所だけできなかった)

続きを読む