Web + Life Hack

〜True But Useless〜

【ruby】【rails】最近覚えた「railsのコンソールでテーブルのカラム名を出力する方法」など


大江戸Rubyが大盛況だったみたいで。。。




特にこのペパポさんの段階的にバージョンアップをする方法はめちゃくちゃ参考に
なりました。
弊社でも試してみたい。。。

さて僕の方といえば、
今回は転職して初の大上がりなリリースをした際に為になったことをいくつか。

1・railsのコンソールでテーブルのカラム名を出力する方法

>> g08M11s.column_names
=> ["id", "g08_m11_user_id", "status", "created_at", "updated_at"]
>>


2・capにて実行できるコマンドの見付け方

[g08m11]$ cap -vT

cap deploy                   # Deploys your project.
cap deploy:check             # Test deployment dependencies.
cap deploy:cleanup           # Clean up old releases.
cap deploy:cold              # Deploys and starts a `cold' application.
cap deploy:finalize_update   # [internal] Touches up the released code.
cap deploy:migrate           # Run the migrate rake task.
cap deploy:migrations        # Deploy and run pending migrations.
cap deploy:pending           # Displays the commits since your last deploy.
cap deploy:pending:diff      # Displays the `diff' since your last deploy.
cap deploy:restart           # Restarts your application.
cap deploy:rollback          # Rolls back to a previous version and restarts.
cap deploy:rollback:cleanup  # [internal] Removes the most recently deployed ...
cap deploy:rollback:code     # Rolls back to the previously deployed version.
cap deploy:rollback:revision # [internal] Points the current symlink at the p...
cap deploy:setup             # Prepares one or more servers for deployment.


3・rake db:migrateが実行出来ない時の確認

rake db:migrateが実行出来ない時はmodel内に

COLUMN_NAMES = column_names + ['g08m11_code', 'g08m11_name', 'g08m11_etc']

などが入っていないか注意。
厳密にいえばmigrateが実行されていないのにカラムの呼びだしをしているため、
migrate時にエラーが発生する。


5・rails的な書き方

モデルにbelongs_toなどのリレーションを書く際には、

belongs_to :モデル名

ではなく

belongs_to :モデル「ファイル」名

とすること。


例:

belongs_to :G08M11

ではなく

belongs_to :g08_m11



has_manyも同様。
(こけはしないがrailsの規約に則っていない。)


6・ruby正規表現

通常だと

/^/area/[a-z]+/?$/

と書く所をrubyだと

/^\/area\/[a-z]+\/?$

となる
バックスラッシュがポイント。
ruby正規表現を使う場合に便利なサイト
http://rubular.com/



その他にも
今回は前職と違って他のサービスとの兼ね合いや
cronの設定、
capでマイグレーション走らせるための工夫や
それのdebugなど多くのことを学ぶことが出来た。


そして一番大事なのはこの機能により
サービス内のCVRを上げること!
目指せ!CVR2%台!