PostgresSQL+ActiveRecordのwhereで大文字小文字を無視
SQLのlower Model.where("lower(name) like ?", "%john%").to_sql # SELECT \"models\".* FROM \"models\" WHERE (lower(name) like '%john%') SQLのILIKE PosgreSQLではILIKE …
SQLのlower Model.where("lower(name) like ?", "%john%").to_sql # SELECT \"models\".* FROM \"models\" WHERE (lower(name) like '%john%') SQLのILIKE PosgreSQLではILIKE …
Railsで使うRakeタスクは大きくわけて3種類あり、普通はこの順番で定義されることになっている。 gemのタスク アプリケーション固有のタスク Railsのタスク まずソースコードを読んでみた。 Rakefile # Rakefile require File.expand_path('../config/application', __FILE__) …
Railsではhas_manyな関連を持つモデルに対してRESTなルートを簡単に定義できる。 # routes.rb resources :blogs, only: [:index] resources :posts, only: [:index] end このようなルートが定義される。 % rake routes Prefix Verb URI Pattern Controller#Action …
今日から文体を常体にする。 データベースに最初からデータを入れておきたい場合、Railsではrake db:seedを使う。このタスクによりRailsアプリケーションがロードされた状態でdb/seeds.rbに書いたコードが実行される。
あとからデフォルト値を変えたり、Nullableをやめたりってときのやりかたを忘れがちなのでメモ。 class MigrationName < ActiveRecord::Migration def change change_column :models, :column_name, :integer, null:false, default:0 end end こんな感じです。 …
Grapeをもう少し使ってみました。関連記事は↓ RailsのGrapeとJbuilderでAPI開発 - ぴよログ 基本形 # app/api/api.rb resource :items do get '/', jbuilder:'items' do @items = Item.all end end パラメータを受け取る 全てのItemではなく、idに該当す …
RailsアプリケーションにGrapeを使って定義したエンドポイントはrake routesには表示されません。表示されるのはroutes.rbでマウントしたAPIのルートのみ。 そこで自前のrake routesを定義してGrapeのAPIもroutesに表示してあげることにしました。
既存のRakeタスクと同名のRakeタスクを定義した場合、上書きではなく連続実行になります。確か。 Railsでフレームワーク側で定義されているRakeタスクが30ほどありますが、それに含まれるタスクを少しカスタムして実行したいような場合に、lib/tasks以下にrakeタスクを追加するだけでは既存のタスクも動いてしまいます。
RailsでAPIを作るならGrapeを使うってのが定番っぽいので使ってみました。 参考にしたのはこのへん intridea/grape Ruby - RailsとGrapeで行う最高のWeb API開発 - Qiita Grapeの導入〜Hello World インストールはgem installすればOKです。次にAPIの実装コードを書くファイルを用意します。僕は …
Railsアプリケーションの作り始めってローカルのデータベースにデータが全然なくて何かと作りづらいってことありませんか?データがないとページネーション書けないし、なんか雰囲気出ないし、、、みたいな。 Railsの場合はseed.rbにデータ生成プログラムを書いておいて、rake db:seedでデータベースを作れます。そのときにダミーデータ生成gemを使うと幸せになれます。