例えばA has_many Bs
かつB has_one C
であるとき
1
|
|
とすればよい. さらにB has_many Ds
であれば
1
|
|
となる.
例えばA has_many Bs
かつB has_one C
であるとき
1
|
|
とすればよい. さらにB has_many Ds
であれば
1
|
|
となる.
配列で渡す.
1 2 3 4 5 6 7 8 |
|
例えば後付で投稿画像を640px x 640pxに統一するようにしたときなど. 既存のデータにもその変更を反映したいときは
1
|
|
とすればPaperclipで管理している全てのデータ(original以外)を現在のルールで再生成してくれる. ただこれだと変更に関係ないクラスも(ex: BookCoverだけ変更したのにUserImageも)再生成されるので非効率. なので
1 2 3 4 5 |
|
のようにすれば特定のクラスのデータだけ再生成できる.
例えばUserモデルとCompanyモデルが多対多(お互いhas_many)の関係であることを表現するときは, 中間のモデルCompaniesUser(アルファベット順にならべる)を使う.
それぞれコードは以下のようになる.
1 2 3 4 5 |
|
1 2 3 4 5 |
|
1 2 3 4 5 |
|
Rails4ではobserversが削除されているので, 使用したい場合はrails-observers
gemをインストールする.
1
|
|
もしくはActiveRecordのcallbackで
1 2 3 4 5 |
|
や
1 2 3 4 5 6 7 |
|
のようにしてもよい.
MySQLだとmysql -u root -p DATABASE_NAME
とかすれば直接操作出来るんだけどSQLiteだとどうすんのかなー, って思ってたら
1
|
|
でいいっぽい. もちろんMySQLをDBに指定していたら上のコマンドでMySQLが起動される.
ちなみに
1 2 3 4 5 6 7 8 |
|
ブログしばらく書いてないと思ったら一ヶ月ぐらい書いてなかった. しばらく書いてないと次書くときは高度なこと書かなきゃいけない気がして余計書きにくい. Railsで多対多の関係表現するのどうするんだっけとかいつも忘れるのでメモっておきたいんだけど書いてないとこれじゃショボすぎるからやめとこうと思って書かない. 結果またググることになる.
といっても自分で制限かけてるだけだから普段からショボいこと書いてたら遠慮なくショボいこと書けるようになると思った. 日記だとどう頑張ってもショボいことしか書けないけど書くと一日の振り返り出来そうだし都合良い. あと毎日続けたいので出来るだけ考えなくても書けるようにしたい. 趣味はマリンスポーツですさんの日記ぽい文体だとダラダラ書ける感じがして良い. そのうちもっと楽なの思いつくかもしれないけどとりあえずこんな書き方でやろうと思う.
RailsでUserモデルがあってそれがnameという属性を持っているとする. このとき例えば, User#nameの値を条件fooによって変えたいとき,
「怖話ブログの日付フォーマットがおかしい」に取り組んだ記録.
よく忘れるので.