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

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

技術関連-Rails

【Nuxt Vue Rails】axiosのContent-Typeがappliation/jsonにならない

解決策 getの場合は、 第二引数にheaders: をキーとして、 指定したいヘッダのオプションを渡せばOK。 this.$axios.get(url, { headers: { "Content-Type": "application/json", "Accept": "application/json" }}) postの場合は、 第三引数にheaders: をキー…

【ActiveAdmin】レコードが無い場合の、まだありません。「作成する」を非表示に【blank_slate content link】

解決策 ActiveAdmin::Views::Pages::Indexというクラスにある、 render_blank_slate というメソッドにモンキーパッチを当てます。 render_blank_slate www.rubydoc.info ja.ymlのキー (blank_slate、content、link) github.com やり方 1、 initializerで、モ…

【Active Admin】Unable to find input class JsonInput

son型のDBカラムを、 active_adminの管理画面フォームで表示させようとすると、 Unable to find input class JsonInput のエラー。 backtraceの一部 @input_class_finder.find(as) rescue Formtastic::InputClassFinder::NotFoundError raise Formtastic::Un…

【Rails】ymlファイルの中でerbを使い、動的に値を取得してrakeタスクの引数にする

ymlファイルの中でerbを使い、 動的に値を取得してrakeタスクの引数にしようとしていた。 が、 erbを使った部分が文字列のままで渡ってきて、 上手くいかなかった。 ymlファイル例は下記。 # test.yml.erb - id: age: 18 *** こういう値が欲しいが、 #=> [{ …

【active_admin】json型columnのinputエリアの、初期value表示でハマる

最初に結論 json型なので、 参照時のキーは「文字列キー」にする必要がある。 シンボルじゃダメ。 それだけのことでした。 起こったこと 下記のようなjson型カラムの中にあるデータを、 active_adminのフォームの初期値として表示させたい。 t.json "options…

【Rspec Capybara】confirmダイアログが2回表示されるsystem specを書く

やり方 単純にダイアログの回数分、 accept_confirm をネストすればOK。 # 1回目のダイアログ page.accept_confirm do # 2回目のダイアログ page.accept_confirm do # ダイアログが全てOKなら実施したい何らかの処理 first('div[data-cell="del"]>div>form>b…

【Rails】論理削除を有効にする方法【paranoia discard】

論理削除を有効にするための3ステップ 1、paranoiaというgemをインストール 2、モデルにdeleted_atというカラムを追加する 3、active_record.rbにacts_as_paranoiaと追記する class ApplicationRecord < ActiveRecord::Base acts_as_paranoia ←追記 self…

【ActiveAdmin】formのcheck_boxで、dialogやalertの代わりに注釈(hint)をつける

ActiveAdminで管理画面を作っていて、 「非エンジニアのサポートチームの人が使うから、チェックボックスにはダイアログかアラート出したいな...」 と思い、 「chack_boxをON、OFFしたらdialogかalertを出すオプション」 的なものを探していたのですが、 che…

【ActiveAdmin】has_many + nested_attributes_for + allow_destroyなassociation_formで生成される削除ボタンをカスタマイズする

「allow_destroy: true」 を使わず、 f.inputのname属性に 「:_destroy」 を指定すればOKです。 例 form do |f| f.inputs 'Contract' do # 親モデル Contract end # 子モデル Option f.has_many :options, do |o| # allow_destroy: trueは不要 o.input :_des…

【ActiveAdmin】デフォルトのcreateとupdateの処理をカスタマイズしたい

controller do〜endブロックの中で、 createなりupdateメソッドをオーバーライドすればOKです。 オーバーライドする際は、 リダイレクトの処理も書いてあげる必要があります。 ちなみに、 createもupdateも、 デフォルトのリダイレクト先は「showアクション…

【ActiveAdmin】select_boxで表示するcollectionのscopeを指定したい

結論 collectionオプションを使います。 collectionの引数に、 scopeを渡してあげればOKです。 例 f.inputs for: [:plan, f.object.plan || Plan.new] do |p| p.input :name, as: :select, collection: Plan.all.map(&:name) # Planモデルの全nameをセレクト…

【ActiveAdmin】formで、belongs_toなmodelのstrong_parameterを指定する

permit_paramsに、 子モデルの「名称」と「属性」を指定すればOKです。 例えば、 下記のようなモデルがあるとします。 # 親 class Plan attribute :name attribute :price has_many :contracts end # 子 class Contract belongs_to :plan end この場合、 Act…

【ActiveAdmin】フォームのタイトル(パネル)部分を色付けする

panel do〜endブロックの中に、 f.inputを入れてあげればOKです。 form do |f| panel '次月プラン' do f.input :name f.input :id end end するとこんな感じになります。 f:id:mah666hhh:20201107111535p:plain nameのラベルは、 I18nで翻訳が当たっているの…

【ActiveAdmin】ヘッダー下のデフォルト作成ボタンを非表示にする

config.clear_action_items! の1行を追加すればOKです。 ActiveAdmin.register Item do # これを追加 config.clear_action_items! end これで、 ヘッダータイトルの作成ボタンが非表示になりました。 f:id:mah666hhh:20201107092354p:plain clear_action_ite…

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句で特定の日付前後で絞り込みしたい

今すぐ登録したい方へ このブログから登録の多いエージェントは下記の3つです★ (リンクをクリックすると公式サイトに飛びます) ✅【ダントツの1位】フォスターフリーランス【案件保有数5000件以上。業界25年の超老舗】 ✅【僅差で2位】エミリーエン…

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

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

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

今すぐ登録したい方へ このブログから登録の多いエージェントは下記の3つです★ (リンクをクリックすると公式サイトに飛びます) ✅【ダントツの1位】フォスターフリーランス【案件保有数5000件以上。業界25年の超老舗】 ✅【僅差で2位】エミリーエン…

【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 3.0.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…