SakuraWi - BLog

WEBエンジニア。聴いたお話をまとめておく倉庫的な。スタックストックスタック!

技術-RubyonRails

Rails製の個人アプリのruby を 2.7.5から上げる

ruby --version ruby 2.7.5p203 (2021-11-24 revision f69aeb8314) [arm64-darwin22] $ rails -v Rails 6.1.4.7 さすがに、ということで(herokuもEOLだしサポート対象外。。) まずrubyインストール $ rbenv install -l 3.0.6 3.1.4 3.2.2 3.3.0 jruby-9.4.5.…

herokuのclearDBが容量限界そうなのでMySQL5.7を8にあげてみる

経緯 herokuのエラーで何度か storage errorが出ていた。 接続すると、エラー画面になっていて、操作が効かない感じ。 エラーの内容から、おそらく、DBの容量の問題と思う。 けど、中身をcsvでダンプすると100MBほどしかないのだが... とりあえず、herokuの…

ActionView::Template::Error (undefined method `total_pages' for #<User::ActiveRecord_Relationのエラー対処方法

初歩的なkaminariのエラーですが。 ActionView::Template::Error (undefined methodtotal_pages' for #

以下のエラーが出て直らないERROR! The server quit without updating PID file

mysql.server start を叩いたら、一生以下のエラーがでていた。 ERROR! The server quit without updating PID file 数時間格闘して、以下のコマンド通りにしたらなぜか治った。 history 931 mysql.server start 932 source ~/.zshrc 933 mysql.server start…

Webpack のbuild問題

エラー % bin/webpack [webpack-cli] Invalid configuration object. Webpack has been initialized using a configuration object that does not match the API schema. - configuration.node should be one of these: false | object { __dirname?, __file…

MySQL5.7はいらない問題

new macにしたので、ローカルの問題解決。 (いまだに地獄のようなrubyを使ってます、一部のアプリ) この辺りで直りました 162 bundle install 163 openssl version 164 brew install openssl 165 gem install mysql2 -v '0.5.3' 166 brew install mysql\n 1…

久々に触るプロダクトのRuby ver, Yarnなどなどをupdateする

ruby 2.6.0ぐらいから 3.1.3に ruby 3.1.3を入れて、 ruby-versionとgemファイルのrubyをアップデート。 動かしてみる。 エラーがでるので、bundlerをuninstallとinstallする。 yarn upgrade後 以下エラー文 Module build failed (from ./node_modules/postc…

Rails6 + heroku + Ruby 2.7.5(3.0.3)

スペック Rails 6. gem 'rails', '~> 6.1.4.1' ruby 2.7.5 herokuで動かしたい 基本はこちら https://qiita.com/anago1030/items/250c44d3754f16e54937 master.keyの設定 https://qiita.com/koki_73/items/df7b4b001943e3ed69e7 ruby のキーワード引数のエラ…

Ruby 2.7.5にあげたらposgreでエラーがでた時の対処方法 【PGSQL.5432】

下記エラー。 rubyのversionをあげたらでるようになってしまった。 psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: FATAL: database "xxxxx" does not exist 操作 一旦削除する brew uninstall postgres brew uninstall postgre…

Rails6.0でmysqlを導入する

mysql2備忘録 Xcode CLI toolみたいなものを最新に。 rmで消して 新しくインストールするのでOK openSSL周りの対処 以下記事を参考 https://qiita.com/fukuda_fu/items/463a39406ce713396403

Railsで画像合成や文字入れをする【RMagick】

RMagickを利用して画像の合成や文字入れをしたい 入力した内容に応じて画像を合成したり、 入力文字をいれた画像を作ったりするときの Tips 例で言うと、サムネイル作成、とかかな? Rmagickのインストール gemfileに以下を追加 gem 'rmagick' そして bundle…

GithubActionsでLoadError: libffi.so.6と怒られてRspecが実行できない場合の対処方法

結論 githubactionsでLoadError: libffi.so.6のエラーが出ている場合、 以下を実行させると一応通るようにはなる. sudo ln -s /usr/lib/x86_64-linux-gnu/libffi.so.7.1.0 /usr/lib/x86_64-linux-gnu/libffi.so.6 原因 github actionsのosのubuntsuを20.4に…

RailsにTailwindを簡単に導入する

公式サポート https://github.com/rails/tailwindcss-rails で導入が公式だしよさう ./bin/bundle add tailwindcss-rails ./bin/rails tailwindcss:install の2コマンドで楽々動く。 yarnだとうまく読み込まなかったりしたので、楽。

seed.rbでテーブルの初期化をする 【MySQL】

rails db:seedをした時に毎回テーブルの中身を初期化する処理を書く。 code ActiveRecord::Base.establish_connection ActiveRecord::Base.connection.disable_referential_integrity do ActiveRecord::Base.connection.tables.each do |table| next if tabl…

【Ruby on Rails】SendGridのAPIを使ってメールを送信する

Ruby on Railsでメールを飛ばすのを利用するときに SendGridを検討することは多いと思います。 結構本番環境で飛ばしたり、API使ってやるにあたってハマったところが多かったので残します。 smtpの設定で飛ばす方法の記事は多いのですが、APIを利用する記事…

【Ruby on Rails】enumとは?enumを使って可読性をあげてみよう

ども、櫻井広大です。 enumについて書いてみようと思います。 enumは使ってみると僕は便利だと思っているのですが、初学者からすると、一体これはどうやって使うんだ?とか、ちょっと抵抗があるなじゃないかと思ってまして そのハードルのようなものが取っ払…

【Ruby on Rails】delegateの使い方【委譲は便利】

Ruby on Railsにおける便利なメソッドとして、 delegateがあります。 こちらを使うと、メソッドチェーンをたくさん書く必要なく実装することができます。 忘れずにrails guideのリンクも置いておきます。 Active Support コア拡張機能 - Rails ガイド delega…

【Ruby on Rails】Rspecで行数を指定してテストを実行する方法

Ruby on RailsのテスティングフレームワークであるRspecを利用する際の行数を指定して実行する方法があります。 bundle exec rspec app/spec/test/test.rb:5 上記のように、最後に :10などのオプションを付与することで、その行のテストを実行することができ…

【Ruby on Rails】Railsにおける inverse_ofについて

双方間の関連付けで、異なるオブジェクトを参照しないように指定するオプション。 同様のレコードを見る、のようなイメージ。 Rails 4.1 以降は自動的に付与されるらしいが、関連付けにオプションが増えたりすると自動的につかないケースがある模様。 has_ma…

【Ruby on Rails】カスタムレスポンスHTTPヘッダを付与する方法【noindexを指定する】

response.set_header('HEADER NAME', 'HEADER VALUE') Rails5以前は以下の方法で書けるようです。 response.headers['HEADER NAME'] = 'HEADER VALUE' 実装例 class TestsController def index @books = Book.all response.headers['HEADER NAME'] = 'HEADER…

【Ruby on Rails】be_falsyとbe_falseyとbe falseの違いについて【RSpec】

Ruby on RailsのテストをRSpecで書いているみなさん、どうも櫻井広大です。 be_falsy使っていますでしょうか。 タイトルにもある、 be_falsy be_falsey be false の違いについて書きます! RSpecでfalseやtrueの返り値のマッチャ be_falsy ということで、結…

Railsにおける例外処理の考え方とテストでは何をテストするべきか?講座

こちらの記事は、くふうカンパニー Advent Calendar 2018の21日目の記事となります。 くふうカンパニー Advent Calendar 2018 - Qiita 例外処理、みなさんどうするべきなのかちゃんと把握しているでしょうか? 正直言います。 ワタクシ、ちゃんと理解してい…

Rails2年目のさく氏による, stimulus試した実践ガイド

どうも! くふうカンパニーアドベントカレンダー、7日目担当の@KotaSakurawiです。 くふうのアドカレはこちらから▶︎くふうカンパニー Advent Calendar 2018 - Qiita 今日の記事は! フロント寄りの内容になります。Stimulusについて触る機会がありましたので…

Ruby on Railsを使ってtwitterに画像付きtweetをするぞ

wip記事ですが、追記していきます。 Ruby on Rails使って、twitterにガンガン画像をあげてやろう、画像付きtweetをしようという記事です。 Twitter::REST::Request.new(@client, :post, "https://upload.twitter.com/1.1/media/upload.json", command: 'APPE…

Railsでテーブルを追加するコマンド【migaration】

Ruby on Railsでテーブルを追加、migrationファイルを追加するコマンド、たまーにしか使わないのでいつも検索しちゃいます。 どうせなので自分のブログにも残しておくことにしました。 要点は modelを追加するとテーブルもmigrationファイルも、modelも生成…

【Ruby on Rails】sidekiqをrspecでテストしてみよう

sidekiqを用いてバックグランドジョブをさばきたい人のための備忘録。 tips集みたいな感じで残します。 sidekiqって? まずはやっぱドキュメントだ。本物をみよう。 https://github.com/mperham/sidekiq バックグランドジョブを管理、実行するためのライブラ…

引数の順番によらない設計をする方法【Ruby on Rails】

引数の順番によってコードの処理が決まっており、そこの部分の変更によって様々な箇所を修正する必要がでてくるケースがあります。

radio_buttonのチェックを入れる方法について【Ruby on Rails】

Ruby on Railsにおいて、form_forをしつつradio_buttonを設置するケースは非常に多くあると思います。 フォームを作成するケースで元からチェックを入れたい(チェック済み)場合、確認画面から戻って来た時にチェックがあらかじめ入っている処理にしたい場合…

新卒入社の僕が半年で受けたコードレビューとコメント

みんなのウェディング Advent Calendar 2017の8日目の記事です。 みなさんこんにちは、新卒エンジニアの櫻井です。 2017年4月にみんなのウェディングに入社し、8ヶ月が経過しました。 エンジニアの研修が6月から始まったので、ちょうどエンジニアの業務に携…

【Ruby on Rails】ルーティングを確認する方法【config/routes.rb】

Ruby on Railsを勉強し始めた時、知っておいた方が便利な「ルーティングの確認方法」についてまとめようと思います。 ルーティングというのは、URLのどこにアクセス(+どんなアクションメソッドで)すれば、どのコントローラーのアクションが実行されるのかを…