スリ飯屋Malankaのフリーエンジニアな日々

IT実務未経験から約1年、東京でフリーランスのRuby on Railsエンジニアに転職。約2年半、大阪中崎町でスリランカカレーの間借りしてました。フリーランスエンジニアになるためのノウハウ、スリランカの事を発信していきます。

技術関連-Rails

RSpecで、Base64エンコードされた画像ファイルをテストする

こんにちは、mah(@RailsRubyMah6h)です。 今回は、 RSpecでBase64エンコードされた画像ファイルをテストする です。 1、 テストに使う画像ファイルを、Base64でエンコードしたバイナリ文字列に変換する (下記のようなサイトを使うとラクです) https://lab.sy…

【Rails6】gem toastr-railsを導入できない【ReferenceError: toastr is not defined】

【Rails6】gem toastr-railsを導入できない【ReferenceError: toastr is not defined】 出ているエラー ReferenceError: toastr is not defined 結論 下記の記事の手順通りにやると、toastr-railsを入れられました。 medium.com 起きていたこと 公式ドキュメ…

【Ruby on Jets】dynamodb-localを実行した時に、javaのバージョンが古くてエラー発生。Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/logging/log4j/spi/ExtendedLogger : Unsupported major.minor version 52.0

こんにちは、mah(@RailsRubyMah6h)です。 このブログでは、 僕がIT未経験から約1年でフリーランスエンジニアになるまでの過程、 ノウハウなどを書いていきます。 今回は、 Ruby on Jetsで、dynamodb-localを実行した時に、javaのバージョンが古くて発生した…

【必見】Railsアプリでadsenseの自動広告が表示されない時の5つの確認事項

こんにちは、mahです。 このブログでは、僕がIT未経験から約1年でフリーランスエンジニアになるまでの過程、ノウハウなどを書いていきます。 今回はRailsアプリでadsenseの自動広告が表示されない時の5つの確認事項についてです。 Qiitaというサイトの記事を…

【Rails】aタグからhref属性の値を正規表現で抽出する方法

こんにちは、mahです。 このブログでは、僕がIT未経験から約1年でフリーランスエンジニアになるまでの過程、ノウハウなどを書いていきます。 今回は、aタグからhref属性の値を正規表現で抽出する方法 についてです。 一発で抽出出来るヘルパーメソッドがある…

【Rails】開発環境のデータを本番環境(heroku)へ移動【seed_dump】

こんにちは、mahです。 このブログでは、僕がIT未経験から約1年でフリーランスエンジニアになるまでの過程、ノウハウなどを書いていきます。 今回は、 開発環境のデータを本番環境(今回はheroku)へ移動する方法 についてです。 seed_dump というgemを使うと…

【Rails heroku】ActiveRecord::AttributeMethods::Serialization::ColumnNotSerializableError

こんにちは、mahです。 このブログでは、自分がIT未経験から約1年でフリーランスエンジニアになるまでの過程、ノウハウなどを書いていきます。 今回は、 Railsでheroku(postgreSQL)を使っていた時に出たエラー、ActiveRecord::AttributeMethods::Serializati…

【Rails】DBに紐つかない属性(カラム)をモデルに追加する

こんにちは、mahです。 このブログでは、僕がIT未経験から約1年でフリーランスエンジニアになるまでの過程、ノウハウなどを書いていきます。 今回は、DBに紐つかない属性(カラム)をモデルに追加する についてです。 「DBに保存しないでいいけど、属性持たせ…

【Rails】joinしたテーブルに対し、where句で特定の日付前後で絞り込みしたい

こんにちは、mah(@RailsRubyMah6h)です。 このブログでは、 僕がIT未経験から約1年でフリーランスエンジニアになるまでの過程、 ノウハウなどを書いていきます。 今回は、 【Rails】joinしたテーブルに対し、where句で特定の日付前後で絞り込みしたい です。…

herokuで画像ファイルをassets/下に置いても認識されない

herokuで画像ファイルをassets/下に置いても認識されない テキストを音声にしてmp3ファイルを生成し、assets/audiosディレクトリ以下に保存 1のファイルを取得しS3にアップロード 1のファイルを削除するということをしていました。 が、herokuではどうもasse…

【Rails】enum型でカラム名を定義すると、scopeが自動生成される

こんにちは、mah(@RailsRubyMah6h)です。 このブログでは、 僕がIT未経験から約1年でフリーランスエンジニアになるまでの過程、 ノウハウなどを書いていきます。 今回は、 【Rails】enum型でカラム名を定義すると、scopeが自動生成される です。 【Rails】en…

【Rails】ファイルの作成日時順に、ファイルを並び替える File.mtime()

【Rails】ファイルの作成日時順に、ファイルを並び替える File.mtime() 結論 File.mtime() でファイルの作成日時が取れるので、それをsort_byで並び替える。 こちらを参考にしました。 Rubyでファイル一覧を作成日時順に取得する方法 - 動かざることバグの如…

【Rails】viewでaタグを削除したい sanitize gem

【Rails】viewでaタグを削除したい sanitize gem sanitize gemを使います。 Sanitize.cleanメソッドに、オプションを渡します。 第二引数elementsの引数に、残したいタグを配列で指定することで、指定したタグ以外を削除出来ます。 # @hoge.textにはhtml文字…

【Rails】配列でクエリパラメータを渡したい to_query

こんにちは、mah(@RailsRubyMah6h)です。 このブログでは、 僕がIT未経験から約1年でフリーランスエンジニアになるまでの過程、 ノウハウなどを書いていきます。 今回は、 【Rails】配列でクエリパラメータを渡したい to_query です。 to_queryメソッドを使…

【Rails】SymbolとStringの違いとenumについて

シンボルと文字列 ・シンボル オブジェクトidが一意に振られる。一つのシンボルは常に同一のオブジェクト。なのでメモリの節約になる。 変更が加えられない(イミュータブル) class Symbol (Ruby 2.7.0 リファレンスマニュアル) ・文字列 オブジェクトidが毎…

【Rails】audio_tagのsrc属性の値に + を含めるとエラーになる

【Rails】audioタグのsrc属性の値に + を含めるとエラーになる jsで、audio_tagで出力されるaudio要素のsrc属性に値を代入していた。 値は以下のようなDateTime型の値を含んだファイル名。 [12] pry(main)> DateTime.now => Tue, 14 Jan 2020 08:02:15 +0900…

【inspect】Railsコンソールで、ActiveRecord::Relationオブジェクトの表示件数が11件になる理由

Railsコンソールで、ActiveRecord::Relationオブジェクトの表示件数が11件になる理由 これはRailsコンソールで内部的に inspectメソッド が実行されているから。 参考issue https://github.com/rails/rails/issues/30497 別記事の select for update でのロ…

【Railsチュートリアルでエラーが出た時のチェックリスト】

【Railsチュートリアルでエラーが出た時のチェックリスト】 前提として、 Railsチュートリアルは基本コピぺなので、正しくコピぺしていれば動きます。 その1 文章を読み飛ばしていないか? => こういう技術教材は細かい所が大事で、読み飛ばしていて必要なコ…

【Rails】htmlタグを削除する strip_tagsメソッド

【Rails】htmlタグを削除する strip_tagsメソッド ApplicationController.helpers.strip_tags(対象のhtml) を使えばOKです。 参考にしました。 文字列から HTML タグを取り除く - Qiita # article.html.slim // article['title']から、htmlタグを全削除 h1 #…

【Rails】コントローラーから、status204(no_content)を返す方法

APIからステータスコード204を返すときにハマったのでメモ。 head :no_content でOK。 head: :no_content ではないです! headにシンボルいりません。 つけてしまってて、ハマりました。。 参考 Ruby - Railsコントローラからステータスコード204を返す方法…

【Rails5】viewでflashメッセージを動的に表示させる方法(コピペでOK!)

よく使うのでテンプレとして残しておく。 以下のコードを、application.html.erbのbodyタグの一番始め に設定すればOK。 <% if flash.present? %> <%# 第一引数にメッセージの種類、第二引数にメッセージが入ります %> <% flash.each do |msg_type, msg| %> <div class="alert alert-<%= msg_type %>" align="center"> </div>…

【Rails5】form_withでhidden_fieldを使って、値を配列で送信したい

hidden_fieldだと動かない。 今回の場合、hidden_field_tag を使うことで対応出来た。 hidden_field_tag (ActionView::Helpers::FormTagHelper) - APIdock • 第一引数 name属性 • 第二引数 送信したい値 例. = form_with url: '/articles' do |f| = hidden_f…

【Rails5】自作のディレクトリを、autoload_pathsに追加して自動読み込みさせる

独自例外を定義したクラスを、autoloadさせたかったため。 手順 1、 アプリのrootにcustom_exceptionsディレクトリを作成する。 2、 custom_exceptions/custom_exceptions.rbを作成。 module CustomExceptions class HogeError < StandardError; end end 命…

【OGP設定】facebookシェア時のog:imageの設定が反映されない!

herokuにRailsアプリをデプロイし、facebookシェアボタンを設置。 が、シェア時のogp画像が上手く表示されない。 色々調べていると、 Dynoに書き込まれたファイルはアイドル状態、または再起動したときに消えてしまいます。永続化したいファイルはS3などのフ…

【rails5】テーブルを作ったが、後からカラムにデフォルト値を設定したい時の方法

qiita.com

【rails5】フォームを読取専用にする方法

qiita.com

【rails5】論理削除を有効にする方法

qiita.com

【rails5】db:migrate:resetでハマったメモ

qiita.com

【ストロングパラメーターについて】

【ストロングパラメーターについて】 既存のフォームに、新たに「所属」入力フォームを追加し、値を送信しようとしたがバリデーションがかかって値を渡せず詰まったのでメモ。 質問をすると、 「ストロングパラメータってオチじゃないですか? rails tutoria…