技術-RubyonRails
結論 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に…
公式サポート https://github.com/rails/tailwindcss-rails で導入が公式だしよさう ./bin/bundle add tailwindcss-rails ./bin/rails tailwindcss:install の2コマンドで楽々動く。 yarnだとうまく読み込まなかったりしたので、楽。
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使ってやるにあたってハマったところが多かったので残します。 smtpの設定で飛ばす方法の記事は多いのですが、APIを利用する記事…
ども、櫻井広大です。 enumについて書いてみようと思います。 enumは使ってみると僕は便利だと思っているのですが、初学者からすると、一体これはどうやって使うんだ?とか、ちょっと抵抗があるなじゃないかと思ってまして そのハードルのようなものが取っ払…
Ruby on Railsにおける便利なメソッドとして、 delegateがあります。 こちらを使うと、メソッドチェーンをたくさん書く必要なく実装することができます。 忘れずにrails guideのリンクも置いておきます。 Active Support コア拡張機能 - Rails ガイド delega…
Ruby on RailsのテスティングフレームワークであるRspecを利用する際の行数を指定して実行する方法があります。 bundle exec rspec app/spec/test/test.rb:5 上記のように、最後に :10などのオプションを付与することで、その行のテストを実行することができ…
双方間の関連付けで、異なるオブジェクトを参照しないように指定するオプション。 同様のレコードを見る、のようなイメージ。 Rails 4.1 以降は自動的に付与されるらしいが、関連付けにオプションが増えたりすると自動的につかないケースがある模様。 has_ma…
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のテストをRSpecで書いているみなさん、どうも櫻井広大です。 be_falsy使っていますでしょうか。 タイトルにもある、 be_falsy be_falsey be false の違いについて書きます! RSpecでfalseやtrueの返り値のマッチャ be_falsy ということで、結…
こちらの記事は、くふうカンパニー Advent Calendar 2018の21日目の記事となります。 くふうカンパニー Advent Calendar 2018 - Qiita 例外処理、みなさんどうするべきなのかちゃんと把握しているでしょうか? 正直言います。 ワタクシ、ちゃんと理解してい…
どうも! くふうカンパニーアドベントカレンダー、7日目担当の@KotaSakurawiです。 くふうのアドカレはこちらから▶︎くふうカンパニー Advent Calendar 2018 - Qiita 今日の記事は! フロント寄りの内容になります。Stimulusについて触る機会がありましたので…
wip記事ですが、追記していきます。 Ruby on Rails使って、twitterにガンガン画像をあげてやろう、画像付きtweetをしようという記事です。 Twitter::REST::Request.new(@client, :post, "https://upload.twitter.com/1.1/media/upload.json", command: 'APPE…
Ruby on Railsでテーブルを追加、migrationファイルを追加するコマンド、たまーにしか使わないのでいつも検索しちゃいます。 どうせなので自分のブログにも残しておくことにしました。 要点は modelを追加するとテーブルもmigrationファイルも、modelも生成…
sidekiqを用いてバックグランドジョブをさばきたい人のための備忘録。 tips集みたいな感じで残します。 sidekiqって? まずはやっぱドキュメントだ。本物をみよう。 https://github.com/mperham/sidekiq バックグランドジョブを管理、実行するためのライブラ…
引数の順番によってコードの処理が決まっており、そこの部分の変更によって様々な箇所を修正する必要がでてくるケースがあります。
Ruby on Railsにおいて、form_forをしつつradio_buttonを設置するケースは非常に多くあると思います。 フォームを作成するケースで元からチェックを入れたい(チェック済み)場合、確認画面から戻って来た時にチェックがあらかじめ入っている処理にしたい場合…
みんなのウェディング Advent Calendar 2017の8日目の記事です。 みなさんこんにちは、新卒エンジニアの櫻井です。 2017年4月にみんなのウェディングに入社し、8ヶ月が経過しました。 エンジニアの研修が6月から始まったので、ちょうどエンジニアの業務に携…
Ruby on Railsを勉強し始めた時、知っておいた方が便利な「ルーティングの確認方法」についてまとめようと思います。 ルーティングというのは、URLのどこにアクセス(+どんなアクションメソッドで)すれば、どのコントローラーのアクションが実行されるのかを…
以前に作っておいたshampersというアプリを最近いじってます。 google analytics導入 独自ドメインにした このあたりは意外と需要ありそうな予感なので、記事にしたい。 非常に粗雑な作りですが、いまの自分だとともかくリリースしちゃえ、というスタイルが…
4パラメータ コントローラのアクションでは、ユーザーから送信されたデータやその他のパラメータにアクセスして何か作業を行なうのが普通です。Railsに限らず、一般にWebアプリケーションでは2種類のパラメータを扱うことができます。1番目は、URLの一部とし…
フォームオブジェクトを書く理由、それはすなわち fatになるcontrollerをスリムにするためである。 controllerには,searchメソッドなどを書きがちで、どんどん肥大化する傾向にある def search @hoge = Hoge.where(id: XXX) if id.present? @hoge = @hoge.wh…
2.2.1 Action Viewを出力する render "edit" or render :edit はedit.html.erbなどのテンプレートの呼び出しを行う layoutの指定 class ApplicationController < ActionController::Base layout "main" #... end などの方法で設定が可能。 個々のレイアウト…
tとl I18n.t I18n.l Time.now は、 translate # 訳文を参照する localize # DateオブジェクトやTimeオブジェクトを現地のフォーマットに変換する の意味 遅延読み込み I18のバックエンドは、訳文が初めて参照されるときに遅延読み込みを行います。これにより…
さてさて、Active Record クエリインターフェイスを読んで行きます。 あ、これ知らなかったなーなんていうことをまとめておきます。 .first(3) とすると3つとれる。 なんだってー バッチ プログラムの一連の流れ あらかじめ決めておいた処理のまとまりのよ…
自身が他のテーブルをたどるキーを所持している場合は、belongs_to 自身が他のテーブルからたどるキーで示されている場合は、has_one belongs_to class Book < ApplicationRecord belongs_to :author end と書くとすると Bookテーブルが、author_idをカラム…
Active Record まわり 2.1 acceptance チェックボックス専用のバリデーション 複数個だとどうなるだろ? 2.2 validates_associated アソシエーションを張っているものを一緒にバリデーションしてくれる便利くん validates_associatedは関連付けの両側のオブ…
RubyonRailsにおける new と buildの違いについてまとめておきます。 結論から言うと、同じです。 環境 筆者が試した、またこの記事を書いた環境はこちらです。 $ rails -v Rails 5.1.3 newとbuild 基本的な使い方として、 以下のような例があると思います。…
controllerの内にて以下のようにインスタンス変数を扱っているとき、 テストでインスタンス変数を呼び出したいときがある。 def create @shampoo = Shampoo.new(shampoo_params) if @shampoo.save ... end のように扱っていたインスタンス変数の@shampooをテ…
Ruby on Railsでは、form_withやform_forタグの中でパラメータをユーザが直接フォームから入力させないまま、値を受け渡したい時に使用するものとして hidden_fieldとhidden_field_tag があります。 controller で保持している user_id を次のアクションに渡…