2019-01-01から1年間の記事一覧

Railsの開発段階で配信メールを確認したい

やりたいことはタイトルの通り。 Railsのmailerでメール送信機能を実装すると、本番環境での確認の前に開発環境での確認を行いたい。 そんな時は`letter_opener_web`を使えば送信メールをブラウザ上で確認出来る。# 導入方法 Gemfileに'letter_opener_web'を…

deviseのパスワードの最低文字数を変更する

とても簡単です。 configを編集する 恐らくこれが一番シンプルなやり方。 下記の6..128は「6文字〜128文字の間」という意味なので、6を別の数字にすれば良い。 ~/config/initializers/devise.rb config.password_length = 6..128 ちなみに、ここで最低文字数…

環境変数はどう設定してる?Railsで簡単に設定できるdotenvの使い方

Railsに限らずDB設定値やAWSのアクセスキーなど、アプリケーションを作る上で定数で持たせたい値が存在する。 こういった値はコードに直書きするのでは無く、環境変数として設定するのが基本的な考え方。 そこで今回は環境変数を設定する上でとても便利なgem…

n対nの関係で中間テーブルにid以外のカラムを持たせ登録・編集を行う方法

Ruby On Railsでのアソシエーションの応用のお話。 下記のようなUserモデルとGroupモデルにn対nの関係を持たせ、UserにGroupの所有者情報を持たせたい時、中間テーブルに所有者情報を持たせた方がDB設計的になんとなく綺麗な気がする。 しかし、通常中間テー…

RailsでBootstrapのflashメッセージを良い感じに表示してみた

アプリケーションを作るさいに必ず多用するflashメッセージですが、これをBootstrapを使うと良い感じのデザインで作れます。 今回はhelperも使ってcssも切り替えながら、flashメッセージ部分を部分テンプレート化してみました。 コード まずはflashメッセー…

FactoryBotで中間テーブルのテストデータを用意する方法

FactoryBotでテストデータの中間テーブルを用意する方法がわからず、少し詰まったのでメモ。 想定 想定としてUserモデルとGroupモデルが存在し、n対nの関係であるとする。 中間テーブルのモデル名はGroup_userとする。 app/models/user.rb class User < Appl…

seedデータってどうやって入れる?seed-fuを使った便利なSeedデータ挿入法

railsアプリの初期データを入れ方として初期段階ではrake db:seedがあります。 でも、繰り返し使った場合同じデータが登録されたり、登録するデータの選別が出来ません。(コメントアウトを使えば出来るけどめんどくさくてやってられない) ここでseed-fuを…

似ているようで実は違う!?dependent: :destroyとdependent: :delete_all

親モデルに紐付く子モデルがある場合、has_many: で関連付けしただけだと親モデルを削除すると子モデルが孤立してしまうため、通常はdependentオプションでdestroyを指定し、親モデルを削除するとそれに紐付く子モデルも削除されるように設定する。 しかし、…

【ActiveAdminにご用心】ActiveAdmin導入時のassetファイル汚染防止法

管理画面を簡単に作ることの出来るactiveadminですが、そのまま何も考えずに導入して通常ページのデザインが崩れてしまいました。 原因 これはactiveadminのCSSやJavascriptが管理画面以外でも読み込まれる事が原因です。 rails generate active_admin:insta…

LaravelでSQLiteを使う際のmigrationの忘備録

LaravelでDBをSQLite3を使った時に最初のDB設定でハマったので忘備録。 LaravelのデフォルトのDBはMYSQL LaravelではデフォルトのDBがMYSQLなので、それ以外のDBを使う際は設定を変えないといけない。/.env DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3…

gitのアップデートの忘備録

Gitをきちんと理解しようと思いUdemyで動画を購入。 購入したのはこちらの動画。 www.udemy.comPCのGitのバージョンが最新でなかったのでアップデートしたが、少し躓いたので忘備録 HomebrewでGitが管理されているか確認 GitがHomebrewで管理したいので、既…

無料でサイトのSSL設定ができる!Let's Encryptとは?

Facebookのログイン連携で必ず必要になるhttps。通常のサイトはhttpですがどうやってSSL通信を付加するんでしょうか。 今回は以前まではお金がかかると言われていたSSL通信を無料で出来るサービス、Let's Encryptを紹介していきましょう! SSLって? SSL/TLS…

SSHとHTTPの違い

さくらインターネットのVPSを契約してサーバ構築中で、通信プロトコルの1つであるSSHを改めて理解したのでまとめてみる。 今回はHTTPとの比較で通信プロトコルをまとめてみた。 どちらも通信プロトコル SSHはHTTP通信プロトコルと呼ばれるもので、PCがネット…

SEの要件定義書作成のまとめ

業務系システムを作る上では(少なくとも今自分が勤めている会社では)、お客様の言うことが正義。 だからお客様の意に沿わない言動は悪と見なされ、アジャイル開発で「ここはこうした方がよくね?」なんてことは言えない。 プロジェクト規模に寄らず、最初…

画像アップロードフォームにドラッグ&ドロップ出来るようにする

画像アップロードフォームがあるとそこにドラッグ&ドロップで画像をアップロード出来れば便利ですよね。 でもブラウザの標準機能では、画像をドラッグ&ドロップするとページ全体に画像が表示される仕様になっています。 そこで今回は、アップロードフォー…

Nuxt.jsの環境構築方法② ~nuxt.jsのインストール~

前回の記事でnode.jsをインストールすることが出来た。今回はnuxt.jsをインストールしてみたいと思う。 create-nuxt-app を使用する npxがインストールされていることを確認し、下記のどちらかのコマンドを実行 $ npx create-nuxt-app <project-name> $ yarn create nuxt-a</project-name>…

Nuxt.jsの環境構築方法① ~node.jsのインストール~

MacでNuxt.jsの開発環境構築手順を書いて行きたいと思います。 前提として、コマンドラインとbrewはすでにインストールしているものとします。 ndenvのインストール ndenvのリポジトリをGithubからクローンします。 $ git clone https://github.com/riywo/nd…

CSSで写真などを等間隔に配置するCSS GRID

やりたいこと 例えばInstagramのように投稿した写真を等間隔で並べるアプリを作りたい時、通常のCSSでは重心が左上にあるので写真が左に寄ってしまう。 これをいい感じに等間隔に配置したい。 CSSグリッドとは 2次元レイアウトをHTML/CSSを使って簡単に配置…