Rails
前プロジェクトでログを眺めていて気づきました。仕組みを考えれば確かにという感じだった。 class User < ApplicationRecord after_initialize -> { logger.info('Instantiate!') } end User.find(1).lock! # User Load (0.2ms) SELECT `users`.* FROM `use…
Rails で JavaScript が必要なプライベートプロジェクトでは、ながらく Npm + Watchify + Gulp + Rails を手動起動などしながらすすめていましたが、最近、意を決して Yarn + Webpack + Rails に変更しました。そこで、Rails と JavaScript の接合点も Rails…
github.com Usage たとえば Rails 内でこうやる。 re = SiegeSiege.run( time: 20, concurrent: 4, user_agent: false, urls: [ "http://localhost:3002#{students_path}", "http://localhost:3002#{students_path} POST name=abc", SiegeSiege::URL.new("ht…
Installation gem 'a_r_q_logger' github.com せつめい ActiveRecord::Base サブクラスのインスタンス生成をできるだけ抑えれば、それだけ処理時間が抑えられるのは自明とされています。 そこで、今は、できるだけ少ない queries に抑えることを目的として S…
大げさなタイトルみがありますがただのRailsです。 github.com うすうす実装なのでさがせばあるんでしょうけど、人が書いたもの使いたくない場合ってあるじゃないですか。 起動 $ TARGET=http://you-want-to-ajax.server.com ALLOW=http://your-local-js.ser…
Rails 4.2.7、ActiveAdmin 1.0.0.pre4で発生しました。 普通にやってる分には出ないんですけど、下の記事みたいに外からRails.application.require_environment!すると、models関連でCircular dependency detected while autoloading constant Fooが出ます。…
自明だったり、すごく重かったり、細かすぎるテストたちがいます。 重いテストは短期的にも長期的にもコストになり、細かすぎるテストは実装変更時のコストが必要以上に高く、よくありません。 しかし、たまにやっときたいんですよというテストがありますの…
認証機能再発明するべからずは有名な鉄則ですが、まるで知らないままというのもマズイので実装を読むことでお茶を濁していきたい。 saltやSCryptの運用、persistence_tokenの更新などで比較的安全にいけるのでは。 パスワード salt Authlogic::Random.friend…
清く正しくとは、生SQL文字列を書かない程度の意味です。 下の方の長いやつはRails 4までの話です REGEXPはRails 5もしくはArel 7からmatches_regexpとしてメソッドが用意されました。 Writer.where(Writer.arel_table[:email].matches_regexp('.*@gmail.com…
ので、思いつく限りのSNSやブログに書いています。 ここにも書きます。 どれ 以下の記事のやつを作ってる時に「バグかしら?」と思ってモンキーパッチで回避してて、せっかくだからとpull requestを飛ばしてみたら忘れた頃にマージされたという話です。 qiit…
たっぷりとしたコードを含むRails Engineは上から読んでいくにはつらいものです。 いくつかのgemに分割されているSpreeのようなアプリケーションを読むにはインストールして起動しつつ、その上で読んでいくのが楽ですが、手がかりがないのはつらい。というこ…
あたらしいもの好きなのでActionCableをいじっています。WebSocketは別に新しくない?おかたいことを言わないで。 ところでこの解決策は推測でしかないんですが、とりあえず解決したので暫定メモ的なアレですが、困ってる人はどうですか。 Redisががんばった…
最初はドキュメントを頭からケツまで読んだほうが良いと思うんですよ。その時使わないポイントも頭に入れておくと、それが使えるタイミングが来たら、あれ、見たことあるぞ?となると思うんです。 歳を取ってくると結構実感するレベルで記憶力が弱ってきて、…
とか考えながらモックをつくってました。動いてる。 おしえてください mmmpa/askable 反応をボタンひとつで返せるようにしたかった ただ知らないだけでも、その反応がわかるようにしたかった、という感じです。 メーリングリストで質問を投げた時の問題点は…
サイトでも読めるし電子書籍でも読める。本の体裁になっている方が「全部流し読む」のは楽な印象。 EPUB版をGoogle play bookに突っこんで暇があれば読んでいた。 tatsu-zine.com railsguides.jp 読んだらよさそうなところ すでにRailsを多少業務でやってい…
最終出社を済ませ、母と妹に詳細を知らせ、本格的に無職になりました。 こんな感じで雑に呼び出せるのでroughという名を関してます。 mmmpa/rough_swalgithub.com def create User.create!(user_params) rescue ActiveRecord::RecordInvalid => e swal{ erro…
Kaizan mmmpa/kaizangithub.com 改ざんです。self.output_buffer.gsub!するとCould not concatenate to the buffer because it is not html safe.って怒られたりHTML素通しだったりするので、そこら辺の対処用。 こんなの何に使うんだっていうと、いま作って…
ActiveRecordSamplooper mmmpa/active_record_samploopergithub.com ActiveRecord#sample したり、アルバムランダム再生みたいに 1 周で 1 回だけしか出てこないランダム抽出をしたりするやつで、自動テストで毎回書いてた奴をまとめた感じです。 前回の Tan…
User.select(:first_name, :last_name) みたいなことをしておった状態に squeel をいれたら ArgumentError (wrong number of arguments (2 for 0..1)) と言われました。 コードをみたら引数一個しか取らない感じになってる。他はだいたい*argsなのに、なんで…
ネット上で見つけたコードを馬鹿正直にコピペしていたら死んだし俺が悪かったという話です。 いつもの感じで rails plugin new new_plugin --mountable cd new_plugin rails g rspec:install したままではプラグイン用に生成される factories にパスが通って…
ギョームおつかれさまです。 mmmpa/any_receiver 素 これで http://192.168.30.130:3000/access こう返る。 {"path":"access","method":"get"} パラメーター パラメーターを渡すと http://192.168.30.130:3000/access?param=param_value こんな感じ。 {"para…
認証はまぁともかくとして承認の段で http://example.com/api/sessions/token/resources/show みたいなのが一般的ですみたいなこと言われて「?」となったのが発端で考えてました。許可証からなんか出てくるわけじゃないだろ的なあれで。 こう? Rails では…
Rails 4.2.0、Authlogic 3.4.2 での話です。 Authlogic の問題ではなく scrypt が 2.0.0 だと死ぬので 1.2.1 にしたら動きます。 gem 'authlogic' gem 'scrypt', '~> 1.2.1' 原因がわからなかったのでひとまず gem 'authlogic', github: 'binarylogic/authlo…
Rails Plugin のつくりかたを学ぶ一環として書いていた。 これが こうなる 仕事で Rails を触りだしてからとにかくフォームをつくる機会が多い。サイト訪問者が使う層はともかくとして、サイト管理画面になるとなんか嫌になるほどフォームをつくる羽目になっ…
view 内の form_for から instantiate_builder を経てこういう形で呼びだされます。 builder.new(object_name, object, self, options) self is 何?かというと view から呼びだされるのでもちろん view ですが、FormBuilder 対象のテストなので view なんて…
SCSS ではこうですが、SASS では怒られる。 $black: ( name: 'black', light: #666, dark: #000 ) SASS 記法では 1 行でおねがいしますということでした。 $black: (name: 'black', light: #666, dark: #000) ちまたでは SCSS の記事ばかりですが {} 書きた…
要は ActiveRecord::RecordInvalid#record のように使いたいんでモンキーパッチで module Authlogic module Session module Existence class SessionInvalidError < ::StandardError def initialize(session) @record = session super end def record @recor…
最近はドット演算子で attribute を参照する統一をしているので問題ないのですが、初期に書いたのは配列アクセス演算子 [] を結構使っていて難儀しました。 もともとはworker[:name]つう感じで生で扱われてました。 attr_encrypted :name, key: 'a secret ke…
という思いがずっと前からあって下記エントリーのような対応をしていました。 テストが通るたびにレッドライト!グリーンライト!ってさけんでるんだけど RSpec でわからないことがある。 - うさぎ飢餓 Rails 触りはじめのエントリーでとても懐かしい。 それ…
エラーは各フォームの近くに表示したいけど form_for の中身の記述を増やしたくはないのでカスタムフォームビルダーを作成する。 Rails Guide でやり方読む フォームヘルパー — Rails ガイド Ruby on Rails ガイド どうやってカスタムフォームビルダーをつく…