読者です 読者をやめる 読者になる 読者になる

無駄かもしれない足掻き

github : https://github.com/zer0-u

環境を整える話

ニートライフもそろそろ1か月を迎えることになりましたぜろゆです。わりとお金がない気がしてきました。失業保険の説明会に行くと「お前らは立派な労働者たちが納めた税金で養ってもらってるんだからさっさと再就職しろよ」ということを八つ橋にくるんで教えてもらえます。結構大ダメージです。でもまぁいい経験です。そう思うことにします。

前回記事への反響ありがとうございます。いろいろメリットデメリットありそうなので少しずつ検討しているところです。やはり現行の seed.rb ごり押しは間違っていた(結論)

今日は技術的な話というよりはなんとなく考えたことをつらつらと書いていく記事です。

続きを読む

初期データをどう管理するか問題

てにみゅさーち、少しずつデータを拡充してます。

その過程でどうしたらいいのかなーって問題が2つ挙がったのでなんかアドバイスがあればなぁと思って記事を書いています。

問題その1 肥大するseed.rb問題

てにみゅさーちは検索機能を提供するサービスなので、元となるデータがたくさんないと意味がない。で、今のところ3環境(本番・テスト用*1・ローカル上)あるのでそれぞれでデータを同じように持っていたい。初期データを用意するのはseed.rbを使うと便利だと学んだし、rails db:seed でデータをざくっと入れてくれるのはとても便利なのでそこに追記しているのだが、結構無理が出始めていて困っている。

問題だと感じているのは以下の3つ

  • 単純に行数が増える
    • データが増えれば行数が増える。なのでだんだんスクロールがつらくなってくる
  • カテゴリごとに分けるのがめんどくさいが分けないと読みづらい
    • キャラクターとか、公演情報とか、まぁざっくりいうとテーブルごとに分類したほうが読みやすいのはわかるんだけど結構めんどくさい
  • いちいち適用済をコメントアウトしないといけない
    • rails db:migrate は適用済のものを避けてくれるけれど、 rails db:seed にはそんな便利機能はない
    • だから適用済は削除なりコメントアウトなりで避けておかないと二重データができてしまう
    • これが結構めんどくさい(のでカテゴリごとに分ける手間がさらにかかる)

seed.rbに追加するのは初期データのみにしろというのはわかるけれど、3環境にデータをサクサク追加していくには今のところこれ以上の案が出てこない。やりたいのは以下2つだから、それになんかちょうどいい感じのソリューション*2があれば教えてほしい。

  • 3環境(heroku上に2つ・ローカルに1つ)それぞれにさくっと(コマンド1つくらいで)大量データを追加できる
  • 適用済やカテゴリ(テーブル)での分類が簡単にできる

問題その2 相関テーブルの作り方を間違えたような気がする

出演情報や公演情報は多対多の関係が出てくる。1人のキャストが2人のキャラクター(双子らしい)を演じることがあるし、1人のキャストは複数の公演に出ているし。なので相関テーブルを用意した。が、その作り方が雑だったような気がしてきた。

参考にしたのは以下のサイト

ruby-rails.hatenadiary.com

この方法がいいとか悪いとかではなく、この方法で作った相関テーブルに初期データを追加するとなると結構大変である。 IDで連携してるみたいなので、seed.rb でもXXX_id と指定する。これがまた結構めんどくさくて、IDを特定するのはまだしも、うっかり二重データを作ってID用の整数値が進んでしまったりしてデータを作り直さなければならないとしんどい。追加方法を変えれば改善するかもしれないが、もうちょっとデータをコントロールできるような方法はないだろうか…。

こんな感じで悩んでいるので何かアドバイスがあれば教えてほしい。

*1:heroku上にある

*2:言ってみたかった

WEBサービスをリリースしてみてわかったこと

先日からTwitterだったりブログだったりで言及していたけれど、ついに1回目のリリースにこぎつけた。

TennimuSearch

リポジトリはこっち

github.com

まだまだ改善すべき点はたくさんあるんだけど、とりあえず1回目のリリースを迎えるまでにやったこととか、苦労したこと、学んだことを書いておく。

てにみゅさーちの概要については前の記事とかここに書いてあるので省略。

続きを読む

herokuでアプリケーションを公開した話

紆余曲折を経てアプリケーションが公開されました!いえーい

TennimuSearch

作った経緯

  • 2.5次元なり舞台なりを見て気になる俳優さんができました
  • その俳優さん(Aさん)が過去に出ていた作品のDVDを見てみようと思いました
  • どうやらAさんはテニミュに出ているようです
  • テニミュのサイトを見ましたが、初心者にはどのDVDを買えばAさんを見られるのかわかりづらかったです
    • 同じキャラを複数の俳優が演じている
    • 作品によって演じたキャラが出たり出てなかったりする
  • 俳優名から逆引きできたらいいなと思いました!

俳優わからん!ってときは「一覧から探す」で適当にぽちぽちすれば楽しめると思います

参考にしたページ

qiita.com

qiita.com

herokuまだいまいちわかってないので、アクセスできないときはなんかいろいろやってるんだなーと思って放置しておいてください。

これからの予定

見た目

  • 見ての通り非常にダサいのでどうにかしたい
  • bootstrapを試しているところ

データの追加

  • とりあえず雰囲気がつかめる程度のデータ量を用意しただけで網羅はしていない
  • 3rdシーズン(現行)まで随時追加していくつもり

管理者用機能の追加

  • 現状はデータの追加などをすべてseed.rbで賄っている
  • 画面からも追加や編集、削除ができるようにしたい
  • 手作業じゃなくてなんか便利な追加方法があればいいなぁと思う

セキュリティなどのもろもろ

  • 多分存在しないIDを指定したりするとあかんことになる
  • 利用者は閲覧のみだけどなんか他に気を付けるべきところがあれば教えてください

余談

一番苦労したことは「俳優名にふりがなを振ること」です

【ひとまず解決済】やっぱりRailsでつまづいている

2017/04/11追記 リポジトリのルートにGemfileがないとだめなんだそうです

人間の都合でプロジェクトルートを変えてはいけなかった…。

とりあえずデプロイまでできて、heroku open して適当なアドレスでwebページを開くが

f:id:teafortw0:20170411125214p:plain

こうなるところまで進みました

 - 追記ここまで -

続きを読む