Rails
よくよく考えたら当たり前なんだけど、もしかしたらやってくれるのでは!?みたいな淡い期待を打ち砕いてくれたので、やってみたメモ 環境 rails (5.2.0) 処理例 仕様 /sample/1 を指定したときは {sample: true} のjsonが返却され、それ以外のときは {sampl…
そんなこともあったねと新しくセットアップしてたらおきたので備忘 環境 rails (5.2.0) 原因 差分を見てmigrationをかけてくれる機構がridgepoleと噛み合わず起こる現象。 rails_spec.rbにデフォルトで以下の記述あるのでコメントアウトしてあげる ActiveRec…
Railsログの先頭に一意のIDが出てるなー、きっとよしなに何か振ってくれているんだろうなーとか思ったら違った。という話。 環境 rails (5.2.0) やっている設定 enviromentsのこの記述 # Prepend all log lines with the following tags. config.log_tags = …
ログから処理時間が欲しいときに小数点以下で欲しいな、とか思ったときにやる方法メモ 環境 やり方 一番簡単なのは Time の型同士で引くこと。 t0 = "2018-10-10 10:00:51.14".in_time_zone # => Wed, 10 Oct 2018 10:00:51 JST +09:00 t1 = "2018-10-10 10:…
ゲームとかやってると割と当たり前なんだけど、そういうコードを見かけたので一応メモがてら。 環境 rails (5.2.0) 例 たとえばこんなコード # 10日前のものを選出したい(whereしろというツッコミは忘れる) User.all.each do |user| next if user.created_a…
あまり浸透していないのと忘れるのでメモ 環境 rails (5.2.0) 使い方 文法 条件1もしくは条件2に合致する場合 Model.where({{条件1}}).or(Model.where({{条件2}}) 例 Userのidが1かcreated_atが今現在のレコードを調べる User.where(id:1).or(User.where(cre…
一体どういう意図でつくったのかわからないが見つけたのでメモがてら。打ち消しの記述なんて危険しか孕んでないから、おそらくコレは見かけたら駆除したほうがいい系のメソッドだとは思っている。 環境 rails (5.2.0) 例 例えば普通にorderすると以下のよう…
ただのモックの書き方だが具体例を添えて。 環境 rails (5.2.0) rspec (3.7.0) やり方 allowとand_returnを使う allow(Rails).to receive(:env).and_return(ActiveSupport::StringInquirer.new("production")) 原理 allow({{クラス名}}).to receive({{メソッ…
人それぞれやり方はあると思うけど、自分はこう思うよ系雑記 環境 rails (5.2.0) 事例 前提の話 レイアウトとレンダリング | Rails ガイド の 「3.4.4 ローカル変数を渡す」にも紹介されているように部分Layoutには変数を渡すことができる。 ▼contents/index…
小ネタ備忘録です。 環境 rails (5.2.0) 例 下記のクラスをテストしたい場合 class Example def logging Rails.logger.info("hoge") end end 下記のように書く # 実行前にloggerのinfoに設定される引数を見るようにする expect(Rails.logger).to receive(:in…
MedBeer -Rails開発での技術的負債との付き合い方-に行ってきたのでメモ 各発表の感想 Rails Good Parts, Bad Parts 今日の発表資料ですー(\( ⁰⊖⁰)/)スクリーン見づらい人はこれ見て発表聞いてください https://t.co/qnJfErDkmK #medbeer— willnet (@netwill…
なんかRubyでない世界観で作られた日本語戻り値を受け取って加工してたら変なところでエラーになったのでメモ 環境 rails (5.2.0) 事象 以下のような test.txt を用意する 悪霊退散 これを意図的に Shift-JIS で読み込む text = File.read("test.txt").force…
Model名.all.each は Model名.find_each にしろというのはRubocopでも怒られるド定番な修正対象ですが、できない場合があるのを知らなかったのでメモ 環境 Rails 5.2.1 できないパターン これができない場合はそもそもRailsのfind系機能が使えないので気づく…
Qiitaにはコラム的に書きましたが、その書いた経緯系雑記です。 最近ずっとPHPをやってきた人にRailsの使い方を教えることがあったんですが、Mailerの話になり def welcome_email @user = params[:user] @url = 'http://example.com/login' mail to: @user.e…
ActiveRecord::RecordNotFound とかだと勝手に404ページけどほかは何があるんだろうとか思ったのでメモ 環境 rails (5.2.0) 確認の仕方 ActionDispatch::ExceptionWrapper.rescue_responses # => {"ActionController::RoutingError"=>:not_found, # "Abstrac…
created_at や updated_at はRailsといえば!ぐらいの代表的なカラム名だけど、 type とかは感覚的な理解だったので、そういえばActiveRecord的につけてはいけないカラム名とはどういうものがあるのかと思って調べてみたメモ 環境 rails (5.2.0) 避けるべき…
Rails使ってると、ActiveRecordNotFound とかがraiseで上がった時に勝手にpublic/404.html がでたりしますが、あれが出るのはどういう仕組みなのかっていう部分的メモ(内容がまとまったらもうちょいちゃんと書きたい) 環境 rails (5.2.0) やっているところ…
アクセスしてきたURLのホスト名がexample.co.jpのときとexample.comのときで振る舞いが変わる みたいなControllerへのRSepcをかくときのかき分け方 環境 rails (5.2.0) rspec (3.7.0) やり方 普通にheadersで指定するハッシュに { "Host" => "example.co.jp"…
お前、そんなパターンもあるのかって気持ちになるので一覧 環境 rails (5.2.0) 四則演算用の時間 まずは基本として、Integerのインスタンスは、時間の単語にまつわるメソッドを持っていて、それらが時間を表現してくれる。 # 1秒 1.second # 2分 2.minute # …
FaradayでAPI通信を行っているとき、APIのタイムアウトを意図的に起こしたい時にどうするかというメモ 環境 rails (5.2.0) faraday (0.12.2) webmock (3.4.2) 考え方 Fardayはタイムアウトが発生すると Faraday::Error::TimeoutError を raiseしてくれるので…
受け取ったJSONをそのまま別のところに受け流す、みたいな処理の時に取る手法に関してググってもストレートヒットしなかったのでメモ。 環境 rails (5.2.0) 経緯 こんなJSONをPOSTで受け取るエンドポイントがあった場合 { "title": "タイトル", "body": "こ…
だいたいのチュートリアル読むと、アクセスキーとシークレットキーを設定しようと書かれているが、EC2の権限設定でカバーしたい場合は未指定でも問題ないんだよっていうメモ 環境 rails (5.2.0) 説明 S3などの設定をする config/storage.yml の雛形にはこん…
POROとか作ってると、Rails関係のクラスを継承していないとか往々に起きるんですが、そういうところで引数にホストとか指定せずにURL作りたいなーということがあったのでメモ。 環境 rails (5.2.0) やり方 全部を引数指定するpolymorphic_url Rails.applicat…
タイトルが全ての雑記レベルのメモですが、意外と知られていないっぽいので書いてみる。 環境 rails (5.2.0) 例 こんなモデルがあったときに # == Schema Information # # Table name: users # # id :bigint(8) not null, primary key # name :string(255) #…
他の言語のenumと違って、モデル名.enum要素名 という作りになってしまうが故のつらいポイントを書いてみた。 環境 rails (5.2.0) 要素名で気をつけたいところ 端的な名前 enumの要素名は 要素名? が作られてしまう。それが故に安易な名前付けは機能としてぼ…
ググると出てくるのはフォームでの利用事例ばかりでふと実githubのReadmeを見たら書いてあったので、日本語情報がてらメモ 環境 rails (5.2.0) activestorage (5.2.0) やり方 大前提の内容はRailsガイドに書いてあるとおり、テーブルを作って、has_one_attac…
Rails Developers Meetup 2018 Day 3 Extreme]に行ってきたので見たセッションに関してのメモ。メッチャ多いのでひとつひとつの感想に雑味があるのは許してほしい…。 各発表の感想 ※資料スライドは見つけたら貼ります。 曖昧さを受け入れて開発をしていく方…
ローカルマシンでは露見せず、アップすると露見する系なので、思わぬ事故を防ぐために。 環境 rails (5.2.0) 何故オススメなのか 原理としては Time.zone.now と同じなのですが、 Time.parse を使うとRailsに設定されているタイムゾーンは配慮されないので、…
domainって書かれているのでサブドメインもまるっとひっくるめてもってくるのかと思いきやそうではなかったのでメモ 環境 rails (5.2.0) actionpack (= 5.2.0) 実装 request.domainを深掘りすると以下のコードに突き当たる # /actionpack-5.2.0/lib/action_d…
has_oneにするとちゃんと維持しようとするんだと関心したのでメモ 環境 rails (5.1.6) 例 以下のようなモデルがあるとする # == Schema Information # # Table name: users # # id :bigint(8) not null, primary key # name :string(255) default(""), not n…