紙一重の積み重ね

35歳のエンジニアがなれる最高の自分を目指して、学んだことをこつこつ情報発信するブログです。

Rails

【Rails5 + Postgres10】pgcryptoを使ってuuidを実装する方法

やりたいこと URLにidを使っていると、値を変更して他のユーザの情報が見れたり、データ数の推測ができてしまう。これを避けたい。 https:example.com/user/1/hoge ではなく、 https:example.com/user/76a049b8-d280-49e8-917f-d7b28107c660/hoge というよう…

【Rails5】axlsx_railsを使ってCSV出力機能を実装する

はじめに axlsx_railsを使ってCSV出力機能を実装するメモ。 やりたいこと Rails5アプリケーションからCSVを出力したい 実現方法 gem axlsx_railsを使う github.com 実装方法 gemインストール gem 'axlsx_rails' MIMEの登録 長いので\config\initializers\mim…

【Rails5】Punditを使って権限管理の機能を実現する

はじめに Punditを使った権限管理の実装方法のメモ。 やりたいこと 権限管理の機能を簡単に実装したい。 実現方法 Punditを使う。 github.com 実装 application_controller Punditをインクルードする class ApplicationController < ActionController::Base …

35歳のエンジニアがRailsと出会って人生が変わった話 #Qiita #Rails

はじめに この記事は、Ruby on Rails Advent Calendar 2018の12日目の記事です。 qiita.com SIerで働く35歳のエンジニアが、Railsと出会って変わったことについて書きます。 私のこれまでの経歴 文系新卒でパッケージベンダっぽいSIerに入社 現在14年目ぐら…

【Rails5 + Slim】ブラウザのメニューバーやツールバーなどを表示せずに、リンクを新しいウインドウで開く方法

やりたいこと リンクを別のウインドウで表示したい 別のウインドウには、ブラウザのツールバーやメニューを表示したくない 別ウインドウの大きさは手動で調整できるようにしたい やりたいことのイメージ 楽天銀行のログイン画面のこういうやつ www.rakuten-b…

binding.pryでデバッグ中に、意図的に例外を発生させてrescueでキャッチする方法 #Rails5

やりたいこと binding.pryでデバッグ中に、rescueで実装した例外処理を確認したい。 実現方法 raiseを使う。 実装例 def update @hoge ||= hoge ApplicationRecord.transaction do binding.pry # 例外発生 raise ActiveRecord::RecordInvalid.new(@hoge) @ho…

【N+1問題対策】Ransackとincludesメソッドを使ってActiveRecordの多段の関連を検索する方法 #Rails5

はじめに N+1問題を解消するために、複数の関連を持つModelをincludesメソッドで解消する方法をメモ。 実行環境 Rails5.2.0 Ransack Slim Model定義 Userに持っている名称と、Corporationに持っている名称を取得したい。 class User < ApplicationRecord has…

【Rails5.2.0】ActiveRecord::DangerousAttributeError association is defined by Active Record. が発生したときの対処法 #Rails #ActiveRecord

はじめに Rails5.2.0でアプリケーションを開発中に見慣れないエラーが出たのでメモ。 実行環境 Rails5.2.0 ActiveRecord5.2.0 PostgreSQL 9.6 発生したエラー ActiveRecord::DangerousAttributeError association is defined by Active Record. Check to mak…

【ActiveRecord5.2.0】JoinDependencyのコンストラクタの引数の仕様がいろいろ変わっている事に気づかず、3日くらいハマった話。#Rails #ActiveRecord

はじめに Rails5.1.1で動かしていたプログラムを、Rails5.2.0で動かしたら、JoinDependency.newでエラーが発生した。 いろいろ回り道して調べた結果、ここ3日くらいハマってしまったのでメモ。 発生したエラー wrong number of arguments (given 3, expected…