さもしのブログ

Ruby界隈のことを書いていきます

Sublime Textで空白文字が半角英字より小さく表示されるときの対処法

SublimeText上でスペースをインデントとして使うと、なぜかgit diffしたときにずれていました。

以下のように

def my_method
  hoge = if foo?
           hoo
         end
end

のつもりで打っていても、git diffで見てみると下記のようになってしまいます

def my_method
  hoge = if foo?
            hoo <-ここが少しずれている
          end   <-ここが少しずれている
end

原因は半角スペース1つ分の大きさが、半角英字1文字分の大きさよりも小さかったからでした。

そこで、以下の様に明示的にフォントを指定します。

SublimeTextの上部メニューの基本設定(Preferense) -> Settings からユーザ設定(二分割されているエディタの右側)の “font_size”: ** の上に次を1行追加します

"font_face": "Courier New",

保存すると、スペース幅が直り、全体的に見やすくなっているはずです。

Centos7でHerokuからgit cloneする方法

VirtualBox上のCentos7でHerokuからgit cloneしようと思ったときに少しハマったのでメモです。

最初にやったこと

普通に、

git clone https://○○○○/○○.git

とするとAuthenticateエラーがでてしまいました。

git clone https://username:password@○○○○/○○.git

としてもダメで、 パスワードを思いつくのすべて試したり、アカウント設定からnameを変えてみたりしたけど結局ダメでした。

解決

落ち着いてもう一回herokuのサイトを見ていると、そういえば heroku cliってのがあったのを思い出しました。

以下heroku cliのインストール方法です。

heroku cliのダウンロード(herokuに載っているのとは少し違い、linux-amd64用のを使う←ここでもハマった)

$ wget https://cli-assets.heroku.com/branches/stable/heroku-linux-amd64.tar.gz

以下は公式と同じです。手元の環境ではsudoを付けないと権限がないと言われました。

$ sudo mkdir -p /usr/local/lib /usr/local/bin
$ sudo tar -xvzf heroku-linux-amd64.tar.gz -C /usr/local/lib
$ sudo ln -s /usr/local/lib/heroku/bin/heroku /usr/local/bin/heroku
$ heroku login
$ heroku git:clone -a リポジトリ名

これでめでたくcloneできました。

push, pullももちろんできるようになります。

1対1のアソシエーションでエラーが出る

railsで1対1の関係があるモデルを作ったときに、よく分からないエラーではまったのでメモです。

以下のようなモデルを想定します。

class User < ActiveRecord::Base
  has_one :bank_information
  accepts_nested_attributes_for :bank_information, allow_destroy: true
end

class BankInformation < ActiveRecord::Base
  belongs_to :user
end

DBに保存されているuserインスタンスへ新しくbank_informationインスタンスを関連付けるには、以下のようにします

@user = User.find(params[:id])
@user.build_bank_information

ですが、あるとき次のようなエラーが出ました

ActiveRecord::StatementInvalid: Mysql2::Error: Column 'user_id' cannot be null: UPDATE `bank_informations` SET `user_id` = NULL, `updated_at` = '2017-08-22 14:15:42' WHERE `bank_informations`.`id` = 1

原因は、すでに@userにbank_informationが紐づいていたからでした。

そこで、次のようにチェックを入れるとOKです。

@user = User.find(params[:id])
@user.build_bank_information unless @user.bank_information

railsで開発するときにブックマークしておきたいサイト・ブログ7選

railsで開発していると、よく使うメソッドなのにすぐ使い方を忘れてしまう。というのがよく起こります。そんなときにいつもお世話になっているサイトやブログを紹介したいと思います。

1. rails generateコマンド

maeharin.hatenablog.com

一番参照しているかもしれません。rails g model の後ろが、キャメルケースかどうか、複数形か単数形かなど、すぐごっちゃになるので、モデルを作るとき、コントローラを作るときは毎度お世話になっています。

2. マイグレーションコマンド

qiita.com

railsではスキーマ変更をよくすると思います。そのときのコマンドやマイグレーションファイルの書き方をまとめていただいています。

こちらもよく参照します。

3. railsドキュメント

Railsドキュメント

googleで"text_field_tag"と入れて検索すると一番初めに出てくるサイトです。フォームヘルパーは数が多く、引数の書き方も全部覚えられないですよね。そんなときに、ヘルパーの名前で検索すると一番初めに出てきます。簡潔にまとまっていて見やすいです。

調べる以外にも、空いてる時間で眺めているといいかもしれません。

4. bootstrap

bootstrap3.cyberlab.info

bootstrapをメインのスタイルとして使っているサイトが多くなってきました。とくに商用サイトの管理画面では定番ですね。

あわせて読みたいのがこちら、

Home of free code snippets for Bootstrap | Bootsnipp.com

bootstrapをベースに作られたカッコいいデザインを探すときに便利です。

5. ActiveRecord

qiita.com

一度覚えてしまうともう訪れないかもしれませんが、よく理解できなかったときはしょっちゅう見に行っていました。

ActiveRecordのjoinsとpreloadとincludesとeager_loadの違いを丁寧に分かりやすく説明されています。

6. coffeescript

liginc.co.jp

最近railsアプリ内でcoffeescriptを使う事例が増えてきました。

今まで使ってこなかったけど、いざ使うことになったときに始めに見るといいページです。

7. react.js

qiita.com

rails5.1で正式にサポートされるようになって人気が上がってきています。

一からreactを勉強したい方におすすめです。

以上、とりあえずこれだけはブックマークしているサイト・ブログたちでした。

Rubyでメソッドの一覧を確認する

クラスにどんなメソッドがあるのか、使いたいメソッドが定義されているか調べたいことありますよね。

今回はメソッドの一覧を確認し、その中から目的のメソッドを探してみたいと思います。

一覧を表示するクラスとしてFixnumを使ってみます。

すべてのメソッドの一覧を表示するにはmethodsメソッドが使えます

a = 1
a.class #=> Fixnum
a.methods
=> [:%,
 :&,
 :*,
 :+,
 :-,
 :/,
 :<,
 :>,
 :^,
   ・・・続く

出力は配列なので、arrayのメソッドが使えます。このときのrubyのバージョンは2.3.0でした

a.methods.size #=> 224

メソッドの一覧から、特定のワードを含んだメソッドを探すにはArrayのgrepメソッドが使えます。

a.methods.grep /method/
#=> [:singleton_method_added, :private_methods, :define_singleton_method, :singleton_method, :method, :public_method, :methods, :protected_methods, :public_methods, :singleton_methods]

インスタンス.methodsで表示されるのはインスタンスメソッドだけです。クラスメソッドを表示する場合は、.classをつけます。

a.class.methods
>=> [:yaml_tag,
 :allocate,
 :superclass,
 :subclasses,
 :json_creatable?,
 :class_attribute,
 :descendants,
 :superclass_delegating_accessor,
 :superclass_delegating_accessor_with_deprecation,
 :superclass_delegating_accessor_without_deprecation,
   ・・・続く

クラスメソッドの中から"method"を含むものを検索します。

a.class.methods.grep /method/
#=> [:instance_methods,
 :public_instance_methods,
 :protected_instance_methods,
 :private_instance_methods,
 :method_defined?,
 :private_method_defined?,
 :protected_method_defined?,
 :private_class_method,
 :public_method_defined?,
   ・・・続く

instance_methodsというのがありますね。a.methodsa.class.instance_methodとは同じ結果になります。

methodsメソッドは持っているすべてのメソッドを表示します。すべてのメソッドには、継承しているクラス(Fixnumの場合はIntegerクラスが親クラスです)のメソッドも含みます。そこで、引数に"false"を渡すと、そのクラスでのみ定義されたメソッドの一覧を表示することが出来ます。

a.class.methods(false)
#=> []

a.class.instance_methods(false)
#=> [:%,
 :&,
 :*,
 :+,
 :-,
 :/,
 :<,
  ・・・続く

a.class.instance_methods.size #=> 225
a.class.instance_methods(false).size #=> 38

以上。rubyでメソッドの一覧を確認してみました。

ドラマと全然違う!リアルな妊娠・出産体験談【産後編】

ドラマと全然違う!リアルな妊娠・出産体験談【出産編】 - さもしのブログ

の続きです。

妊娠編はこちらです–> ドラマと全然違う!リアルな妊娠・出産体験談【妊娠編】 - さもしのブログ

入院の延長!?安産だった妻にいったい何が起こったのか。衝撃の最終回。

3. 産後編

Ⅰ. 出産直後

産後診察も終えて面会OKになると、私の親や妻の家族も分娩室へ入りました。

なんとそこに赤ちゃんも一緒にいるんです。蓋とか仕切りとかなく、赤ちゃん用のケースに入って、うっすら目を明けていました。そこでみんなで記念撮影しました。こんな自由な感じなんですね。

妻はおなかがすいたと言って、買ってあったおにぎりとかから揚げを食べていました。元気やな~

しばらくして、入院する部屋(合同部屋。他に出産を終えたお母さんが3人くらいいました。)へ移動しました。妻は歩けると言っていたのですが、車椅子で運びました。

出産編でも書きましたが、そこで胎盤を触らしてもらいました。とても貴重な体験なので、ぜひ触ってみることをお勧めします。

赤ちゃんは一旦預かってもらい、少しの間妻は休憩です。私と両親たちは、ガラス越しに息子を見ていました。

Ⅱ. 出産2日目~退院まで

出産2日目から、なんともう妻に息子が預けられ育児が始まります。看護師さんには、お風呂のときや、どうしても疲れていて預かって欲しいときだけ、預かってもらいます。

2日目からはいきなり結構なハードスケジュールです。母乳での授乳や足りないときはミルクを足して、オムツ換えやあやしたりするのもお母さん一人でしなければなりません。そのほかに座学や沐浴の指導などがあります。

ドラマのように、赤ちゃんは専用の部屋で隔離ってわけじゃないんですね。一番びっくりしたところです。

運よくゴールデンウィークだったので、私は毎日実家の奈良から神戸の病院へ通っていました。なれない育児と夜泣きでなかなか寝れないため、明らかに疲れている様子でした。

そのとき、少し気になっていたのですが、産後すぐにおなかがへこむわけじゃないんですね!少しずつ子宮が戻っていくそうです。ですが、それにしてもなかなか戻らないなと思っていました。

合同部屋だと同じ病室の人の愚痴とか、家族のこととか、いろいろ育児以外のストレスもあるんですね。たまに外の空気を吸いに出て、愚痴を聞いていました。妻は味の薄い病院食を嫌がっていたので、こっそり妻の好きなパン屋さんのパンを持っていったりしていました。病院食は薄味好きの私がおいしくいただきました。病院食、好きです。

個人病院とかだとご馳走が出るみたいです。私は正月に生まれたので、私の母は個人病院でおせちを食べたと言っていました。

異変が起きたのは、予定していた退院日でした。

いつものように奈良から神戸への電車へ乗って、妻の待つ病院へ着き、手続きをし、病室へ向かいました。

病室へ着くと退院の準備をしているはずの妻がまだ寝ていました。そこで初めて、あと5日ほど入院が必要ということを聞きました。妻は元気そうなので、息子に何かあったかなと思って聞くと、なんと妻に原因があったのです。

病名は特にないのですが、産後まれに起こるマイナートラブルで、膀胱がつぶれていて、おしっこが自力で出来ないようになってしまっていたのです。

妙におなかが膨らんでいたのは、2リットルもの尿がたまっていたためでした。担当された医師もこんなに溜まっていたのは初めてだと言っていたそうです。

つぶれた膀胱は5日では治りません。5日間何をするかと言うと、自分尿道カテーテルを入れて尿を出す(導尿)訓練をするのです。

尿が膀胱にたまってしまっては直らないので、導尿を2~3時間に一度行う必要があります。日中だけじゃなく、深夜もです!

薬で治す方法もなく、とにかく膀胱が元に戻るのを信じて続けるしかありませんでした。

5日間ですっかり導尿マスターになった妻はようやく退院できることになりました。

Ⅱ. めでたく退院。息子、初めての外界へ

出産から10日後、ようやく退院になりました。うす曇でしたが晴れ間のある、気持ちのいい天気でした。

このときの息子は手足がまだしわしわで、体中くにゃくにゃで。ドラマで見た新生児はいったい何ヶ月の子供だ、と思いました(笑)

私が東京へ帰るまでは、妻のおばあさん家の開いてる部屋で、親子三人お世話になりました。

入院期間が長くてすっかり忘れていたのですが、出生届けを出さなくてはいけません。生後二週間以内が原則なので、忘れないようにしましょう。戸籍を登録する都道府県と、届けを出す都道府県は異なっていても大丈夫でした。

もう預けられる人はいないので、私と妻で協力して育児をしました。妻は導尿も引き続き行うので、出産後1ヶ月はぐっすり寝なかったと思います。

合同部屋のときと比べると、子供の泣き声を気にすることもなく、少し気は楽だと妻は言っていました。

ドラマでは生まれてから一気に大きくなってしまいますが、生まれてから1,2年は成長著しく、本当にいろんなことがありました。特に生後1年目は、予防接種のスケジュールに気をつけたり、アレルギーや変なものを口にしないか気をつけたり、なかなか気を緩めることができませんでした。

幸い、息子は夜泣きがほとんどなく(1ヶ月ほど夜起きてしまう時期がありました)、ほぼぐっすり寝てくれてとても助かりました。

今、1歳4ヶ月になろうというころですが、大人の真似をしたり、へんな言葉を発したり、よく笑うようになったり、意思表示がはっきりしたり。可愛いがとまりません。

まとめ

3記事に渡って本当はドラマで見たことあるのと全然違った!というところを交えて体験談を書いてきました。

まだはっきりと覚えているうちに体験談を書いてみたかったのです。

そんな中、リアルな妊娠・出産を描いてくれているドラマもあります。綾野剛さん主演の「コウノドリ」です。とても反響が大きくて、もうすぐ続編が始まりますね。絶対見ます。

コウノドリは悲しい話も多かったので、続編はどんな内容になるか楽しみです。

ドラマと全然違う!リアルな妊娠・出産体験談【出産編】

ドラマと全然違う!リアルな妊娠・出産体験談【妊娠編】の続きです。

産後編はこちら–> ドラマと全然違う!リアルな妊娠・出産体験談【産後編】 - さもしのブログ

前回までは妊娠発覚からもうすぐ出産かも!までのお話でした。

今回はいよいよ赤ちゃんが生まれてきます。緊迫の出産編です。

2. 出産編

Ⅰ. 分娩前

ドラマでは、出産の合図が「破水した!」や「陣痛が始まった」ですが、必ずしも突如何かが起こり病院に急行するということはないようです。

私の妻の場合は前駆陣痛(陣痛の前にある軽めの陣痛。全然軽くない)から始まりました。正直、素人にはそれが前駆陣痛なのか本陣痛なのか分からないですよね。

私は、ちょうどゴールデンウィーク前だったので、有給を取って数日前から妻の実家にお世話になっていました。

陣痛っぽいのが始まるとまず、病院に電話します。このころはまだ間隔が長いです。

このときは使える車がなかったので、電車で病院へ行きました。まさかの公共交通機関です。40分くらいかかって病院につくころには陣痛は弱まっていました。

また陣痛が始まりそうだし、このまま入院かなと思っていたのですが、この日はまた何かあったら電話してくださいと言われ、自宅へ返されました(笑)

返されるとかあるんですね!

夕方ごろに妻と二人で散歩に向かい、家に着いた少しあとで、また陣痛が始まりました。今度こそと思い、今度は妻のおばの車で病院へ行きました。

ですが、また陣痛が弱まってしまい、再度自宅へ帰されてしまいました。

家に帰って夕食を食べ始めるころからまた陣痛が始まりました。車で移動できるといっても、体に負担がかかるので、しばらく様子見をすることになりました。夜二時ごろになってだんだん陣痛の間隔が短くなっていることに気づき、今度は私の親の車で病院へ向かいました。たしか、陣痛間隔が5分切っていたと思います。

私は妻の隣で寝ていたのですが、目を見開いてエア自転車こぎをしていました。妻がちょっとひょうきんなこの表情をするときは、実は相当な痛みを伴っているときです。

近くで待機してもらっていた両親の車に乗って急いで病院へ向かいました。病院で診察してもらうと、子宮口が9センチ開いていました。助産師さんから、よく耐えましたねと苦笑いされていました。

Ⅱ. いざ出産へ

いざ出産となってからが長かったです。子宮口はもうすぐにでも分娩を開始できるほど開いているのですが、また陣痛が弱まってしまいました。

少し寝て休んだり、陣痛を促すツボ(くるぶしから指4本分くらい上のところ)を助産師さんがマッサージしてくれたりしましたが、陣痛が再開せず、結局陣痛促進剤を投与することになりました。

この陣痛促進剤がとてもよく効いたのですが、陣痛の痛みが激しくなり、私も薬が効きすぎていないか心配でした。ですが、そこからは早かったです。

一旦診察があるので、私は退出しました。しばらくしてから分娩室へ入ると、まるで手術室みたいになっていました。ベッドだと思っていたものが、変形して分娩台になっていました。かっこいい!妻の頭側に移動して、いよいよ出産がはじまります。

お分かりになられただろうか?まだ破水していません!!

Ⅲ. 出産

分娩と言うより手術です。メスやはさみが並べられ、手術用のライトがたかれ、助産師さんは手術着をきて、ゴム手袋をはめていました。

まずは、「いきみ」の練習です。呼吸法やいきむタイミングを教わります。私が何をすればいいかも教わりました。

一通りやると、出産がはじまりました。奥の方にもう頭が見えているとのことなので、はさみで袋を切って人工的に破水させます。

陣痛のタイミングと、いきむタイミングを合わせて、力をいれます。

私は同じタイミングで妻の体を腕で支え、いきみやすいように少し起こすようにします。

分娩室は生まれてくる赤ちゃんが寒くならないように室温があげられていて、とても暑いので、陣痛が一旦止むと、妻をうちわであおいだり、ストローのついたペットボトルから水分補給をします。この、いきむ->うちわ+水分補給のサイクルを繰り返します。

しばらくこのサイクルを続けると、頭が出てきました。私の立っているところからも赤ちゃんの頭が少し見えていました。

頭が出てからは、数回いきむとすっぽり、赤ちゃんが出てきました!

ここでドラマと違うポイントです。ドラマでは完全に出てから産声を上げるイメージだったのですが、なんと我が子は腰がまだ出ていないときから泣いていました!めっちゃ元気やな~と思ったのをよく覚えています。

取り上げた看護師さんが、まだへその緒がついた状態の赤ちゃんを、お母さんの胸の上へつれてきてくれました。カンガルーケアと言うやつです。胸の上へ置かれると、ぴたっと泣き止んだのです。すごいですね、ちゃんと分かっているんですね。

生まれたての赤ちゃんはまだ血がついていて、しわしわの顔ですが、めっちゃ可愛かったです。私は感動で号泣していました。妻はそんな私の姿を見て唖然とし、泣きそうだったのに、泣くのを忘れたといっています。

その後、看護師さんが診察のためにお母さんから引き離すと、めっちゃ泣きました。生まれて史上最大の泣き声でした。最近の分娩室はしっかり防音されているので、廊下まで産声は届かないようです。産後しばらくしてから廊下で待つ両親の元へ報告にいくと、母が「どう?まだかかりそう?」と言っていました。「え、1時間前に生まれたよ」というと凄く驚いていました。

分娩室内で赤ちゃんの診察を行うのですが、身長、体重、胴囲、頭囲、あと、手足の指の本数も数えていました。性別の確認と、男の子だったので、「玉」がちゃんと2つあるかの確認もしていました。

そのころ妻は出産後の後処理をしてもらっています。詳細は、痛々しいので割愛します。陣痛並みに痛かったそうです。

赤ちゃんが生まれてすぐ後に、胎盤などが出てくるのですが、希望すれば後で触ることが出来ます。そのときに言うか、バースプランに書いておきましょう!入院する部屋へ移動して、少し落ち着いたあとで見せてもらいました。全然血生臭いこともなく、想像よりずっときれいでした。ハラミっぽい感じです。

出産直後のことを、ドラマと全然違う!リアルな妊娠・出産体験談【産後編】 - さもしのブログ

へ書いて行きます。