2019-01-01から1年間の記事一覧

puts でまとめて出力しよう

Rubyの出力メソッドのひとつ”puts” よく見ます。 複数の値を出力する時、putsを複数行にわたって書いていませんか?私はそうでした。 array = ["a","b","c"] puts array puts "\n" puts 1+1 => a b c => => 2 もうそんなことはやめにしましょう。 array = ["…

配列とは [ ]いらないのかもしれない

Rubyの配列の概念を疑うようなことがあったので備忘録 普通の配列の記述は array = [ "a", "b", "c" ] のように書きますよね。 ところがです。この大括弧で囲まなくても配列として認識されるみたいなんです。 array = "hoge", "gefu", "mofu" puts array[1] …

coffeeファイルに気をつけろ

javascriptのファイルが読み込まれない!? 延々と悩まされました。個人作成のものだったので1ヶ月だらだらと悩み続け、問題を先送りにし、解決しないままだらだらと過ごしました。 Railsで画像投稿機能をつけようと思って。それにJavascriptで複数枚の画像…

スワップファイルシステム

アプリを作って本番環境にデプロイしながら制作をしていたら、ある日デプロイができなくなっていた。エラーコードを見ても初めて見るものばかり。しかし、そこには日本語で「メモリ不足」と書かれている箇所があった。 このわずかな手がかりを基に「メモリ」…

CSSとSassの違い

●CSS…Cascading Style Sheet。Cascadeは滝。滝のように上から順に読み込んでスタイルプロパティを適用していくってことかな。 Require_Treeで同一ディレクトリ内を参照している。アセットパイプラインを使ってCSSファイルを一つにまとめて、HTMLに適用してい…

正規表現とは

正規表現とは…異なる形式の文字列を統一した形式で表現するための方法である。 例えば… 090(1126)1515 → 09011261515 090-1126-1515 → 09011261515 このように二つの書き方で表された電話番号を統一した書式で表現し直す。これが正規表現である。種類をまと…

非同期通信とは

まず、同期通信とは全てのHTML・CSSを読み込んでページを更新する処理のことを言う。だから時間もメモリもかかる。 対して、非同期通信とは全て更新するのではなく、HTMLの一部分のみをJavaScriptで抽出し、変更をサーバーに送って、返ってきたHTMLをJavaScr…

Webサーバとアプリケーションサーバーの違い

本番環境のサーバーは二つに分かれる。静的なレスポンスを担当するWebサーバーと動的なレスポンスを担当するアプリケーションサーバーである。 ●Webサーバー ユーザーから来るリクエストには、演算処理が伴わない静的な処理がある。例えば、自己紹介ページの…

問 . テストはなぜ書くのか説明せよ

<テスト> プログラムが意図した動きになるか確認するために作るもの。事前にバグがないか確かめることができる <メリット> ●仕様漏れを防ぐ(テストで動作の洗い出しをする) ●リファクタリングしやすい(テストを書いておけば、リファクタリングして挙…

DB設計の正規化 メリットとデメリット

DBを作成する際には、データの関連性や重複保存などで問題が起きて後から構成のやり直しにならないよう、事前にきちんと設計する必要がある。そこで出てくるのが「正規化」の考え。これをきちんと自分の知識にするためにまとめよう。 ●なぜ正規化が必要か 「…

gem install で permission error になった話

gemのインストールをしていたらエラーが出るという人の問題を解決してあげた。 While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory. こんな感じでpermission errorなので権…

'シングルクオーテーション' VS "ダブルクオーテーション"

Rubyの文字列を作るときのおはなし。みなさんはシングルとダブルどちらのクオーテーションを使っているでしょうか。 私もよくわからなくなるので、ここいらでしっかり意味合いを考えて使い分けできるようになっておこうと思うます。 まずそれぞれの仕様の違…

同じ内容を複数選択するショートカット

<div> <p class="same"> 同じだよ </div></div><div> <p class="same"> 同じだよ </div></div><div> <p class="same"> 同じだよ </div></div> このように <div class="same"> 同じだよ </div> という同じ形があって、この部分をまとめて変更したい時。 テキストエディタでは同名部分を連続選択できる機能がある。 「command + D」 これが案外使える。覚えておこう。

破壊的なメソッド! 真偽値なメソッド?

Rubyのメソッドに「!」や「?」がつくメソッドがある。愉快だなって思っていたけれど、ちゃんときちんとしっかり意味があるので、まとめておく。 ●破壊的メソッド(!) 大元のオブジェクトの値を変更してしまう。メソッドは変数とかに一時的に演算処理を施…

ruby のバージョンを変えたら bundle install できなくなった

ruby2.3.1を使っていたので2.5.1にしました。それから開発中のディレクトリでbundle installをしたら、 「 rbenv: rails: command not found The `bundle install' command exists in these Ruby versions: 2.3.1 」 と言われてしまいました。 「ウチじゃ"bu…

Railsがインストールできないのは Mojaveのせい

Rails5.2.2.1をインストールしようとしたらエラーが出る。 [追記あり:mysql2のbundle installもできないのもMojaveのせい] MacBook-puro: $ gem install rails --version='5.2.2.1' Building native extensions. This could take a while... ERROR: Error i…

migrationファイル --NO FILE-- を解決する

RailsでDBに変更を加える際に、マイグレーションファイルを作ってカラムの追加なりをする。 しかし、マイグレーションファイルの作成とか編集に失敗したからと言って、手動でファイルを削除すればそれが反映されるわけではない。きちんとターミナルでコマン…

form_for って難しい

form_forはRailsの入力フォームを作るときにお世話になるアイツ。 なんか自動で色々やってくれるから簡単にDBに保存できるようになるんだけれど、その自動な部分がよくわかってなくて説明を求められた時に困った。そして間違ったことを言ってしまったので、…

ERROR! The server quit without updating PID file 原因は異なる二つのver.のMySQL

DBに接続しようとしたらできない。という人のエラーを解決した。 ERROR! The server quit without updating PID file のエラーがターミナルに出力されてたので、まず mysql.server restart とか sudo mysql.server restart とかやってみるもだめでした。 ●原…

PATHの意味を勉強用

ターミナルを使ってあれこれしていると、「PATHが〜」というのがよく出てくる。 PATHってなんぞや。それをひとまず理解する。 「 PATHとはhogehoge.exeというプログラムが格納してあるディレクトリへの道筋である。」 「その道筋を指定することでプログラミ…

Dateクラスの閏年

Rubyで閏年計算をするコードを作った際、Dateクラスを使ったらうまくいかなかった話。 Rubyでは日にちを計算するのに便利な機能をまとめたDateクラスが備わっています。コードのはじめに require 'date' と呼び出すと、クラス内であらかじめ定義されているメ…

鳴かぬなら killしてしまおう rails s

rails s が途中でフリーズしてうんともすんとも言わなくなった。これはまさに鳴かないホトトギスも同然! 信長「鳴かぬなら killしてしまえ rails s」 殿の命令が下ったので、さっそくやっていきたいと思います。 ●PIDを調べる rails s が動いているProcess …

rbenvのPATHがおかしくてターミナルが…

ターミナルにこのようなエラー文が表示される export PATH="/Users/xxxx/.rbenv/shims:${PATH}" export PATH="$HOME/.rbenv/bin:$PATH" source '/usr/local/Cellar/rbenv/1.1.1/libexec/../completions/rbenv.bash' command rbenv rehash 2>/dev/null rbenv(…

.to_i メソッドは0に帰す

Rubyのプログラムを作っていて、gets.to_i を使ってみて見つけたこと。 while true do puts "[0]レビューを書く" puts "[1]レビューを読む" puts "[2]アプリを終了する" input = gets.to_i if input == 0 then posts = post_review(posts) elsif input == 1 …

migrationファイルがROLL BACKできない!?

状況のスクショとかできなかったのでメモだけ残す。 <発端> DBのテーブルにカラムを追加しようとしてAddColumnHogeのマグレーションファイルを作成して、add_column :hoges, :hogehoge :string とか3つのカラム情報を書き込んだ。そして「 $ bundle exec …

入れ子構造なハッシュ

ハッシュが複層的に入れ子構造になっていると嫌な感じである。 例えば user_data = [ { user: { profile: { name: 'Taro' } } }, { user: { profile: { name: 'Jiro' } } }, { user: { profile: { name: 'Saburo' } } } ] 配列の中にuserキーのハッシュがあ…

テキストエディタのタブの入れ替えウザい

テキストエディタを使っていてモヤモヤする現象のひとつ。 「新たにファイル開いたら、さっきまで見てたタブのファイルと入れ替わった。さっきのやつと見比べたかったのに!」 これ他のエディタでもなるんですが、「PreViewモード」というやつで、むやみにタ…

Symbol型とは

Rubyのオブジェクトにシンボル型オブジェクトがある。「:」をつけるやつだ。 これがキー名の指定とかでよく使う。このシンボル型とは何かを自分のものとするためにまとめる。 オブジェクトには型がある。文字列オブジェクトはString型。数字オブジェクトはI…

ヘルパーメソッドをつくろう

Railsにはもともと搭載されているメソッドがある。そのなかにヘルパーメソッドというものがある。 link_to form_tag / form_for / form_with image_tag など、よくお世話になる便利機能である。 ヘルパーメソッドはViewで活用されるものであり、htmlタグの要…

ゲッター・セッター のself

Rubyでメソッド定義していて、self.がつくときがあります。テキトーにやり過ごしていたので、この前「これなんですか?」と質問されてごにょごにょしてしまった。なので調べて備忘録。 self.はクラスメソッドにもつくのですが、今回はそれではなく、セッター…