技術関連-Ruby
発生した環境は下記。 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/…
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…
Ping failed for Bing: # で調べているとIssueやPRが出ていました。 2021年の12月にBingのping送信が廃止された?というような情報もありました。 これは現在のBingのping送信先URLを確認した方が早そうなので、 Bingウェブマスターツールを見にいきました。…
エラー文「(pry) output error: #」でググるとIssueがヒット。 どうやらRailsから「marshal_dumpメソッド」が削除され、 その影響でawesome_printからも関係するコードが削除された模様。 Update CHANGELOG Remove usage of marshal_dump since this was rem…
ターミナルで $ gem list xxx のようにするのではなく、 メソッドで特定のgemがインストール済かチェックしたい。 ターミナルと同様にgemコマンドを使えばOKです。 gem '指定のgem名' で調べられます。 戻り値は、 引数のgemがインストール済ならtrueを返す …
LineNotifyの準備 1. LineNotifyのアクセストークンを発行する 2. LineNotifyのAPIを扱うクラスを作成する 3. 1で指定したグループに「Line Notify」アカウントを招待しておく Herokuの準備 3. HerokuからのWebhook通知を受けるルーティングを追加する 4. デ…
Nokogiriでパースして得たオブジェクトにto_sして、 scanで下書きかどうかを表す文字列を抜き出す。 # 参考にしたサイトのコードのget_entry_list()の内部 # entry = Nokogiri::XML.parse(entry, nil, 'utf-8') draft_flgs = entry.to_s.scan(/\.*/) # こん…
Stripe::Customer.createメソッドの引数に、 preferred_locales: ['ja'] を指定すればOKです。 customer = Stripe::Customer.create( email: params[:stripeEmail], source: params[:stripeToken], preferred_locales: ['ja'], #=> これを追加
こんにちは、mah(@RailsRubyMah6h)です。 今回は、 RSpecでBase64エンコードされた画像ファイルをテストする です。 1、 テストに使う画像ファイルを、Base64でエンコードしたバイナリ文字列に変換する (下記のようなサイトを使うとラクです) https://lab.sy…
こんにちは、mah(@RailsRubyMah6h)です。 今回は、 画像ファイルの形式をバリデーションする必要があったので、 備忘録として残しておきます。 今回の例では、 Base64でエンコードされた、画像のバイナリ文字列 が渡ってくることを想定します。 ファイル名の…
## 【Rails6】gem toastr-railsを導入できない【ReferenceError: toastr is not defined】 出ているエラー ReferenceError: toastr is not defined 結論 下記の記事の手順通りにやると、toastr-railsを入れられました。 medium.com 起きていたこと 公式ドキ…
javaのバージョンを上げれば解決しそう。 javaのバージョンを確認。 $ javac -version javac 1.6.0_65
gsubを使って書き換えます。 "About" 上記のようなaタグを、 "About" のように書き換える例です。
Selenium::WebDriver::Error::TimeoutErrorは、 直下のrescueで補足される と思っていたが、そうではなかった。 これに気づくのにめちゃくちゃ時間がかかりました笑 調べていくと、 wait.untilブロックの外側 にraiseされていました...
2通りの解決方法がありました。 上に被っている要素を、閉じるなり移動させる clickではなくsubmitを使う submitの方が手っ取り早かったので、自分はsubmitで対応しました。
キーワードに一致する商品が見つからない場合、 "該当する商品が見つかりませんでした" というテキストが表示されます。 なのでそれを判定条件にしました。 下記、サンプルコードです。 # ヘッドレス(ブラウザを立ち上げない)で動かすためのオプションを生成…
Railsの標準機能である attribute API を使います。 attribute :virtual_tags, type: Array virtual_tagsという属性 に 配列の値 を保持させることが出来るようになります。 もし、typeを指定しない場合は、設定した値のclassで、値が設定されます。
attribute() を使います。 attribute('data-XXX') のような形です。 # data-remarksというプロパティを持つ要素を全て取得。戻り値は取得出来た要素の配列 driver.find_elements(:xpath, "//*[@id='search']/div[1]/div[2]/div/span[4]/div[1]/div[#{i + 1}]…
URI.regexp.match(検証したい文字列).nil? で出来ます。 # URLなのでMatchDataオブジェクトを返す。よって .nil? はfalseを返す > URI.regexp.match('https://www.malanka.tech').nil? => false # URLではないのでマッチせずにnilを返す。よって .nil? はtru…
privateメソッドは、Module#instance_methodsの検索対象外。 Hoge.instance_methods(false).include?(:public_method) #=> インスタンスメソッドの名前が配列で返却される。
herokuではどうもassets/audios以下を読み込んでくれない。 そのため、Tempfile, Tempdirライブラリを使用し、 1. mp3ファイルをTempfileとして生成し、Tempdirに仮置き 2. S3にアップロード 3. 1のファイルを削除する という手順を取ることで対応出来ました…
まず URI.parse でURI::Generic のサブクラスのインスタンスを生成します。 相対パスは、.path で取得出来ます。 自分はパスの頭の / が不要だったので、delete(‘/‘)で削除します。 これでURLから欲しい文字列を取り出す事ができました。
【Ruby】論理演算子 &&= について 左辺がtrueと見なされる値なら、右辺を評価し、結果を左辺に代入するという挙動をします。