rails

【Ruby】ActiveRecordのAssociationにメソッドを追加する

ActiveRecordのhas_manyとかbelongs_toとかのAssociationはブロックを渡してメソッドを追加することができます。 class User has_many :blogs do # ステータスがopenのものを取得する def open where(status: 'open') end end end こんな感じで、ブロックの…

【Rails】belongs_toで紐付けたモデルの存在チェック

belongs_toで紐付けたモデルが本当にデータとして存在するかどうかをチェックする。 class Blog has_many :comments end class Comment belongs_to :blog end 例えば、このようなモデルがあった時、Blogモデル経由でCommentを作成した場合は、すでにBlogは存…

【Rails】migrationのchangeとup/downって何が違うの?

Railsでmigrationを作成する時、changeメソッドだけが定義されていたり、upとdownメソッドの2つが定義されている時があります。 class AddColumnHoge < ActiveRecord::Migration def change end end class ChangeColumnHoge < ActiveRecord::Migration def u…

【ruby】ActiveModelを使ってDBと関係ないFormを作成する【Rails】

RailsでFormを扱う時は、Modelと紐付けることで、validationなどの設定はModelに書くことができ、非常に便利です。 ですが、DBと関係ない場合は紐付ける対象のModelが生成されていません。 そこで使用するのがActiveModelです。 https://github.com/rails/ra…