2019/05/27
overwriting existing method...
Creating scope :hogehoge. Overwriting existing method Piyo.hogehoge.
メソッドとスコープ両方作ってしまうとこういう警告が出る。 警告だけなのか・・・ 後ろに書いた方が優先されるっぽい?
migration、reference
_id
以外の名前でカラムを作りたかったが、add_reference
で作ると絶対にそうなってしまうらしい。add_column
でカラム追加、その直後にadd_foreign_key
inverse_ofって結局いるのかなんなのか
Rails 5 以上 + ActiveRecord での inverse_of オプションの使いどころ - Qiita
foreign_key: :microposts
ってしたら
こんどはin
compute_type'`って怒られた。
inverse_of
でポリモーフィック関連とか出てきてつらい。
- Railsのポリモーフィック関連とはなんなのか - Qiita
よむ、、、、、
belongs_to :in_reply_to, class_name: 'Post' ってすると、micropost.in_reply_to = 10 とかしたときにこうやって怒られる。
ActiveRecord::AssociationTypeMismatch: Post(#70310488644880) expected, got 3 which is an instance of Integer(#70310494026920)
in_reply_to
の仕様
- 空のとき→
nil
か?0
か。 - 自分の投稿のとき
rubyの0とnil
- 0だったらnilにして、
||=
で片付くようにしたかった。が、難しそう。 - nilを0として判定するのは
to_i
でできるらしい。 - 三項演算子で同じオプジェクト2回取得するのもなんかなあと思う。いい兆候か悪い兆候か。
indexまわり
ソート順をidでするか、created_atでするか
- どっちがいいんだろうと思って調べたら、やっぱり議論済でいろいろ記事があった。
【Rails】idでソートするか?created_atでソートするか? 〜 Re: idの順番に依存しないコードを書こう - Qiita
- 何調べてもこの方の記事出てきてほんとすごいw
- そして今回もとてもわかりやすい
idの順番に依存しないコードを書こう - komagataのブログ
- どっちもメリット・デメリットがあるというお話で、私には今回判断が難しいかも、、
- 管理画面側なので、正確性についてはそこまでかなあ。データも一度に大量発生するわけじゃないし。
例外
2019/05/26
つらい。自分ができないことをさらけ出しながらやらないと成長できないのがつらい。 やらなきゃいけないことがいっぱいあって、なにひとつできないのが辛い。
なんにもやりたくなくなって、動けなくて誰にも助けを求められないのがつらい。
あーーーーーやだやだやだ。つらい、、、、、
コーヒー飲みすぎたときみたいな、体の中からそわそわして何も手に付かない感じ。 これ、どうしたら治るんだっけ。 お水たくさん飲んでも、なにかたべてもだめ。
ほしいもの
あとで読む、が便利にできるやつがほしい。 - webページからそのまま保存できる - 読んだら一言残して、きれいに見えるようにしたい。 - タグとか付けて検索できるようにしたい - evernoteのchrome拡張みたいにページ保存できるやる、spでもほしい。
2019/05/24
うーーん
ここに書いてること、見直すわけでもないし書き方もほんとに雑だから全然溜まっていってる気がしない。 意味がうまれるようにやりたい、、毎日流れるように過ぎていくのがほんとこわい、、 適当にちょっとずつのこすんじゃなくて、いっこずつ一日少しでもいいからちゃんと身につけていく法gあいいよね。
雑記
技術書も電子書籍で買うようにしたんだけど圧倒的にいいな。 やっぱ分厚いと持ち歩けないし、家にいる時間ほとんどないから
メソッドの名前
- どうするのがいいんだろうっていつも悩むな。 うまくメソッド名を付けるための参考情報 - Qiita
array とか hash
- 【Ruby】Array から Hash を作る方法7選(a.k.a. やっぱり Array#zip はかわいいよ) | RakSul Tech Blog
- 前に読んだこれ、そのときは全然胃にわからなかったんだけど、今日自分でデータをハッシュにしてみたくて読んだら一部理解できた!!!
.zip
メソッドで同じ要素数のメソッドをまとめられる。to_h
でハッシュ化できる。
to_h
[[:for, bar],[:hoge, :piyo]] #=>{ foo: :bar, hoge :piyo }
[key, value]
のペアで渡すので、中身保の腕3つとか渡しちゃダメ。
定数
- 配列を定数で定義したかった。
- シンボルであるべきか、文字列かとか悩んだ。
freeze
- rubyの定数は書き換えることができる。グローバル変数に近い。
rubyでは先頭が大文字であれば定数としている。
String
やArray
も定数。配列オブジェクトをフリーズしても要素はfreezeされない。
- 定数の再代入も不可にしたい場合(デフォできちゃう)、名前空間切ってmoduleをfreezeする
ミュータブル
ミュータブルとイミュータブルとは?Rubyプログラミングの注意点 | エンジニアライブログ
- 変更可能な変数の型。
- rubyではString
とか。
- 配列の初期値を引数で指定したとき、配列内の文字列ひとつを変数に入れて値を変更したら、配列の要素も変わってしまう。
- 配列の全要素が同じ文字列オブジェクトを参照しているので発生する。
Array.new(3, 'piyo')
でなくArray.new(3) { 'piyo' }で防げる。同じ値でも異なるオブジェクトを設定しているから。
-
object_id`で同じオブジェクトかどうか確認できる。
イミュータブル
- 破壊的な変更が適用できない。
- 数値型
- シンボル
- true, false(TrueClass FalseClass)
- nil(NilClass)
技術書、最初から完全に理解するか、頭の中にインデックスを作るか? 〜 #チェリー本 が後半から難しくなる問題を考える - give IT a try
- あたまの中にインデックスを作る。
- プラモみたいに、薄く塗って乾かし、を繰り返す。
2019/05/23
css
LVHA
link, visited, hover, active
の順dえ指定しないと無効化されちゃったりするんだって!!しらなかったこわい
LoVeとHAte、で覚えるらしい。わかりやすい〜〜〜
2019/05/22
any?
- enumerableクラスのメソッド
- ブロックを繰り返し実行し、一度でも真を返せば
true
を返す(繰り返しを中断する) - 全部
false
、またはレシーバが空のときはfalse
を返す
words.any? { |w| w.size >10 }
であれば、words = %w(dog cat mouse pig)
なら全部10文字以下なのでfalse
word = %w(hippopotamus dog mouse pig)
ならかばが出てきた時点でtrue
all?
- 上記の「ブロック内がすべて
true
であれば`true」 - ブロックの戻り値をすべて調べる。
&&
より可読性高く書けることもあるが、全部判定するのがしんどいときは&&
でつなぐほうがよい
git
コミットしてないuntrackedのファイルをなんか誤って消してしまった。 vscodeのGUI操作で変なとこ押したのかな、、、つらい 自分でvue実装したところが消えてしまった。 これの予防策どうしたらいいんだろう。 ローカル専用のブランチ作る?そのままリモートにpushしたくなったときに困りそう。
stash
git stash branch tmp-branch
で別ブランチにstash内容を切り出すことができる
ふむ。使ってみる。
#
なんかいろいろやったけどメモ出来てない。昨日も忙しかったから日記書いてないことすら忘れている
2019/05/19
だめなひがつづく。
なにもしたくないから外に出て、何もしたくないからどこにも行けなくて、最後眼の前に新しくできてたカラオケに入った。
pretenderを知れてよかった。
vue
- ちょっとでもやるぞ。ということで。
Vue.jsとRailsでTODOアプリのチュートリアルみたいなものを作ってみた【2018.03.24】 – RE:ENGINES
1年前の記事だけど。なんかちょっと前の記事でもそのままじゃ使えなかったりして泣く。
todoアプリをつくろう。
Webpack、およびVue.jsはyarnでインストールされる
yarn???????
- 使ってるけど、わからん。
- yarnを使ってみた - Qiita
- パッケージマネージャー
- 知らんって!!!!!
- ソフトウェアのインストールやバージョンの管理、更新、削除を容易に行えるようにするプログラム。 つまり、railsでいうgemかな・・・? → Gemはパッケージ、bundlerがパッケージマネージャ。ふむ。
gemのこと
- そもそもGemも雰囲気で使っている。
gem install "sinatra"
でインストールもできるよね。Gemファイルに書くのと何が違うのかと言うと、- ライブラリ同士の依存性、互換性による問題
gemファイルに記載し、bundleを用いるとgemどうしの互換性を保ちながらgemを導入してくれる。
yarnが何かはわかった。
materializeうまく導入できなかったのでこれ見た。 一次ドキュメントはどこだ。gemか?