rails

Amazon SNS vs Amazon SQS

社内で通知機能を実装する際にAmazon SNSとAmazon SQSどっちがいいかという議題が上がったんですがよくわかってなかったので調べました tl;dr 名前は似てるがそもそもやってることが全然違う Amazon SNSは pub/sub メッセージングの機能を提供するサービス。…

Railsのコロンが2個並ぶやつ :: ←これ

短めです Railsを読んでた時に、クラスを呼び出す際にコロン2つから始まる呼び出し方をみました こんなやつ↓ ::Foo::Bar これってFoo::Barって書くのと何が違うんだろうと思って調べました Foo::Barと書くと、ファイルのある階層の中でFoo::Barを探しますが…

Rubyのobjectとselfの違い

先日、railsで継承元のclassで定義されているmethodを継承先のclassで使おうとしたらエラーになりました class parentClass def hoge return 'hoge' end end class ChildClass < ParentClass def fuga object.hoge end end これはエラーになります 正しく動…

OAuth2をざっくり説明

OAuth2って 認可やら認証やら言われるけど本来は 権限委譲の為のプロトコル 登場人物 リソースにアクセスする権限をもっているユーザ いわゆる我々一般ユーザー クライアント ユーザーの持っているリソースにアクセスしようとするアプリケーション 認可サー…

Rackとは

ついこの間まで「名前は聞いたことあるけど結局Rackってなんなんだろう」状態だった自分 最近仕事で触らなきゃいけなくなったので重い腰を上げてきちんと調べてみました Rackってなんだ? Rackってなんだ?と聞かれてめっちゃシンプルに答えるなら、RackはRu…

Active Recordで任意のカラムがnilでないものを取得する

あれ、どうやるんだって思ったんですが蓋を開けてみればまあそうだよねって感じ # fooがnilのレコードを取得 User.where(foo: nil) # fooがnilでないレコードを取得 User.where.not(foo: nil) そのまんまでした

railsのpath名の決まり方

結論から言え! railsでroute.rbにresourcesを使ってrouteを生やすときにcollectもしくはmemberを使う場合、 path名にcreate new show update destroyのどれかを使うとpathの名前が狂う 困ったこと かなーりレアケースなのですがこの間、resourcesで定義して…

railsのparams permitすると変更できなくなる

結論から言え! railsのstrong parameterでpermitしたhashは変更できない railsのstrong parameter railsにはstrong parameterと言う機能があります 簡単に説明すると、明示的に許可したparameterのみobjectに渡す仕組みです railsを書いたことある方なら誰…

rubyで定数を扱うならfreezeメソッドを使うべき

tl;dr rubyでfreezeメソッドを使うとオブジェクトを変更不可な状態にできる 定数を扱う時はfreezeをつけておくといい rubyのfreezeメソッド rubyではfreezeと言うメソッドが定義されています ref.xaio.jp freezeメソッドを使うとオブジェクトを変更できない…

active recordのnew_record?とpersisted?の違い

tl;dr new_record?はobjectが保存されていないときだけtrueを返します persisted?はobjectが保存されていない、かつ今までに削除されていないときtrueを返します new_record? vs persisted? new_record? 最近Active Recordにnew_record?というmethodがあるこ…

railsでcssに書いたpathはapplication.css内で解釈される

imageが表示されなかった css内で .example { background-image: image-url("hogehoge.png") } とか書いていたら本番環境で画像が表示されなかった assetsの配信方法 ディレクトリ構成は↓みたいな感じ sample-app app assets stylesheet application.css . .…