buppaしていくダメ人間日記

駄目人間のブログ。ゆるーく書いていく

privateメソッドを無理やり呼び出してデータを生成する作戦

エンジニアスクールに通ってます。

へっぽこな自分も気がつけばスクールの最終課題まで来てしまいました。

最終課題は既存サービスのコピーサイトを作成をやります。

 

自分はデプロイと中間テーブルまとめとユーザ周りをやっています。

スクレイピングしたデータが多いので苦戦しています。

スクレイピングしたデータを中間テーブルにうまく渡して生成する方法を考えましたが全く浮かびませんでした。

そのため人力で中間テーブルに引っ越しすることに・・

 

とはいえ連番のIDも多数あることからせめてそこだけでもコードを書いて楽したいなぁ

 

クエリに処理させればいいのでは?と考えたもののクエリの参考サイトを見たけど今の自分には難しすぎる。

 

じゃあRailsのモデルに記述してそのインスタンスだけ呼び出して書くしかないね・・

 

ということで記述。

 

最近AWSしか触ってなのでRubyのコード書くのにちょっと考えた。

以下、浅〜いコード

 

f:id:t_kazuki:20180215084218p:plain

いじりたいのはmember_id(監督/脚本/出演者が格納されているこのカラム)

※memberカラムはenumでそれぞれ属性を分けて格納済み

member_idのみを連番で一定のidまでループさせたい・・・

浅〜いコードだとこんなもの

 

rails cでこのメソッドを呼び出してもエラーを吐く・・・

 

 

あ・・・?あ・・・?

 

 

privateメソッドは基本的には呼び出せないんだって

 

MoviesMember.loop

→だめ

 

MoviesMember.send(:loop)

 

これでうまくいった。

 

当たり前だけどカプセル破壊というものらしくデータがおかしくなる可能性があるらしく非推奨だそうな

 

テストするときとかそんな時にしか使わなそう