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

このブログでは、フリーランス4期目となる自身の実体験から、フリーランスエンジニアになるためのノウハウ、ブログやプログラミング技術、沖縄移住やリモートワークライフについて発信しています。

技術関連

【Heroku無料廃止】Railway.appでWheneverを使わずHeroku Schedulerのように定期処理を実行する

Wheneverのcron設定ファイルやRailway側の実行コマンドを変えて検証していましたが、 なかなか終わらないので発想を変えます。 rakeタスクを実行するエンドポイントを作り、 そこにNew Relicから一定時間毎にpingを送るようにすることで、 実質Herokuスケジ…

Places APIを使わずaタグへのURL指定でGoogleMapのお店を星(評価)で絞り込む

ベースとなるURLは下記の通り。 https://www.google.com/maps/search/{キーワード}/data={評価} {キーワード} の所に「レストラン」「居酒屋」などお店の情報を入れ、 {評価} のところに星(評価)を表すパラメータを入れると星(評価)で絞り込みができます…

【Ruby】"\xE6" from ASCII-8BIT to UTF-8 in /usr/local/bundle/gems/json-2.2.0/lib/json/common.rb:224:in `encode

発生した環境は下記。 macOS Big Sur 11.3.1 ruby 2.6.3 rails 5.2.3 突然 "\xE6" from ASCII-8BIT to UTF-8 というエラーが発生しました。 /usr/local/bundle/gems/json-2.2.0/lib/json/common.rb:224:in `encode'\n/usr/local/bundle/gems/json-2.2.0/lib/…

【無料廃止】Herokuから代替のRailway.appへRailsアプリ移行時に出たエラー

Railwayデプロイ時に発生。 #18 1.183 [1/5] Validating package.json... #18 1.188 error technews@0.1.0: The engine "node" is incompatible with this module. Expected version "v14.0.0". Got "16.17.0" #18 1.201 info Visit https://yarnpkg.com/e…

【Rails】bundle install --jobs(-j)に指定するジョブ数を動的に設定するため、最大値について調べた

最大値が 4 だからなのかと思いましたが、 --jobs で指定できるジョブ数の最大値についての記述はドキュメント上にありませんでした。 これなら動的にジョブ数を変えられるのでは? と思い調べていると、 「指定可能なジョブ数はCPU のコア数と使用可能なメ…

【sitemap_generator】Ping failed for Bing: #<OpenURI::HTTPError: 410 Gone> not working【Ruby gem】

Ping failed for Bing: # で調べているとIssueやPRが出ていました。 2021年の12月にBingのping送信が廃止された?というような情報もありました。 これは現在のBingのping送信先URLを確認した方が早そうなので、 Bingウェブマスターツールを見にいきました。…

新着日時順でGoogle検索とGoogleニュース検索できるサイト「シンプル新着順検索」を作りました

新着日時順でGoogle検索とGoogleニュース検索できるサイト「シンプル新着順検索」を作りました。 TwitterでもGoogle検索が新着順じゃないことに不満がある人もいたので、 ちょうどよかったです。 (昔はサッと新着順にできたみたいですが) まあ多分Google C…

はてなブログatomAPIの記事投稿でカスタムURLを利用する方法

entryタグのxmlns:opt属性に "http://www.hatena.ne.jp/info/xmlns#hatenablogを指定し、 opt:custom-urlタグに希望のURLを入れればOKです。 opt:custom-urlタグに指定したURLは、 entry/ の下に設定されます。 (上記の例だと本記事のURL entry/how-to-set-…

はてなブログatomAPIの記事投稿で複数カテゴリを設定する方法

複数カテゴリについてドキュメントには、 category要素ブログ エントリのカテゴリを指定出来ます。(複数可) term属性 カテゴリ名を指定します。 とあるので、 みたいな感じにパラメータを作ってAPIを叩いたが、 1つのカテゴリにまとまってしまう。 ドキュメ…

【awesome_print is not working】(pry) output error: #<NoMethodError: undefined method `marshal_dump' for #<ActiveModel::Errors:xxx>

エラー文「(pry) output error: #」でググるとIssueがヒット。 どうやらRailsから「marshal_dumpメソッド」が削除され、 その影響でawesome_printからも関係するコードが削除された模様。 Update CHANGELOG Remove usage of marshal_dump since this was rem…

【Rails Ruby】メソッドで特定のgemがインストール済かチェックする

ターミナルで $ gem list xxx のようにするのではなく、 メソッドで特定のgemがインストール済かチェックしたい。 ターミナルと同様にgemコマンドを使えばOKです。 gem '指定のgem名' で調べられます。 戻り値は、 引数のgemがインストール済ならtrueを返す …

【Rails】Herokuのデプロイ開始・完了をWebhookでLineNotifyへ通知する

LineNotifyの準備 1. LineNotifyのアクセストークンを発行する 2. LineNotifyのAPIを扱うクラスを作成する 3. 1で指定したグループに「Line Notify」アカウントを招待しておく Herokuの準備 3. HerokuからのWebhook通知を受けるルーティングを追加する 4. デ…

【Dip Rubocop】DipでRubocopのチェック対象をgit diffで変更のあったファイルのみを対象とする

「DipでRubocopのチェック対象をgit diffで変更のあったファイルのみを対象とする」について、 default_args に指定されている --name-only --diff-filter=AMRC で実現しています。 default_args: $( git diff --name-only --diff-filter=AMRC | grep -e ".*…

【SendGrid Rails Heroku】SendGridアドオンで作成したアカウントが凍結されてもメール送信する方法

元々アプリ用に取得していたGmailのメルアドを、 SendGridの「Single Sender Verification」で設定することで、 SendGridからメール送信できるようにしました。 1、 下記「Single Sender Verification」の、 「Create New Sender」ボタンをクリックして登録…

Nuxt.jsで詳細(show)と編集(edit)画面の動的ルーティングを設定する

Nuxt.jsは、_idというファイル名もしくはディレクトリにすることで、 動的ルーティングを設定できます。 File System Routing - NuxtJS nuxtjs.org 今回、 study_roomsというリソースのCRUD画面を作成する際、 編集画面 (study_rooms/:id/edit) のルーティン…

【Vue.js】v-modelでcheckboxの値の変更が反映されない

結論 v-modelを使わず、 「初期値設定(v-bind)」と「変更を検知して代入(changeイベント)」のように、 処理を分ければOKでした。

【Vue.js Nuxt.js】プロジェクトのrootpathを特定のページへ変更する

プロジェクトルートURL(例: localhost:3000 or localhost:3000/)でアクセスされたら、 特定のページ(例: /articles)に遷移させたい。 (プロジェクトルートのページを変更したい) .Nuxt/配下のrouter.js内にあるbaseプロパティや、 path: '/' の箇所を見て…

【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: をキー…

【Ruby】 はてなブログのAPIで記事一覧取得時、 下書きを除外する

Nokogiriでパースして得たオブジェクトにto_sして、 scanで下書きかどうかを表す文字列を抜き出す。 # 参考にしたサイトのコードのget_entry_list()の内部 # entry = Nokogiri::XML.parse(entry, nil, 'utf-8') draft_flgs = entry.to_s.scan(/\.*/) # こん…

【Stripe Ruby】決済領収書の表示言語を日本語に変更する

Stripe::Customer.createメソッドの引数に、 preferred_locales: ['ja'] を指定すればOKです。 customer = Stripe::Customer.create( email: params[:stripeEmail], source: params[:stripeToken], preferred_locales: ['ja'], #=> これを追加

【Stripe Rails】決済モーダル内のemailにJavaScriptで値を設定する

3、StripeCheckout.configureで生成したオブジェクトから呼び出す、openメソッドの引数のキーにemailを指定し、2の値を設定する 決済する *** // JavaScript var handler = StripeCheckout.configure({ key: '', locale: 'auto', currency: 'jpy', panelLa…

【Stripe Rails】サブスクリプションの即時決済時に、請求書と領収書のダウンロードリンクを取得する

Stripe::Subscription#latest_invoice で、 最新の請求書が取得でき、 latest_invoice.chargeでStripe::ChargeのIdが取れるので、 Stripe::Charge.retrieve(latest_invoice.charge).receipt_url のようにして領収書表示ページのリンク(Stripe::Charge#receip…

【Stripe】サブスクリプション決済成功時や返金時、カード支払い失敗時にユーザにメールを自動送信する

ダッシュボード > 設定 > メール > 顧客のメール から設定可能です。 https://dashboard.stripe.com/settings/emails Stripe 顧客のメール設定 メール文言の言語も設定可能です。 カード支払い失敗時に、ユーザに自動でメールを送信 ダッシュボード > 設定 >…

【Vue.js Nuxt.js】v-bindでhref属性に文字列とコンポーネントのプロパティを指定する

素の文字列とコンポーネントのプロパティを連結する場合 シングルクォートで囲った文字列 + プロパティ のようにすればOKです。 tasks/1/edit というpathにしたい場合 // idプロパティの値が「1」であるとする // 通常の文字列はシングルクォートで囲う必要…

【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 *** こういう値が欲しいが、 #=> [{ …

【RSpec Capybara】This connection is not secure login entered on this page could be compromised【Firefox】

RSpec + Devise + Capybara + js: trueなsystem_specで、 # メルアドとパスワードを入力 fill_in :email, with: 'test@example.com' fill_in :password, with: 'password' # submit click_on 'login' 上記のようなテストシナリオにしたかったが、 テストが通…

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

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

【Vue.js】clickで実行されるmethodsに引数を渡す

クリックで実行される関数に、引数を渡したい。 1、v-onもしくは@clickで指定する関数に、 v-on:click="someFunction(引数)" @click="someFunction(引数)" のように引数を設定する。 // component.vue Delete Task 2、methods側の関数で、 function(1で設定…