railsがんばる子

Ruby on Railsがんばる子です。胡蝶蘭のECサイトを運営しています。

2015-01-11から1日間の記事一覧

中間テーブルの命名について

中間テーブルは基本、多対多のモデルの関連をつくるために用いているので、 中間テーブル自体は意味のあるデータを持つことは少ない。 XyzToAbcというモデル名を見ると、「中間テーブル」だと推測できます。

rubyからGoogleDriveのスプレッドシートに書き込む

準備1 Drive API アクセスを有効にする ドライブ SDK を有効にする クライアントID、クライアントシークレット、リダイレクトURIを控える ドライブ アプリを登録する - Google デベロッパー アカデミー — Google Developers Gyazo - c274baa73bafb81335bccf…

クラスに定義した関数の実行前後をhookする「method_hooker」

Ruby - メソッドの実行をフックする方法 - Qiita Ruby - メソッドの実行をフックする方法 - Qiita Gemfile gem 'method_hooker' class Hoge def self.hoge1 .. end def pre_hoge p 'pre hoge has executed' end pre_execute_method :pre_hoge Hoge.hoge1 #=>…

gem yardを使ってみるとか

ありかもしれない。

渡された引数はなるべく変更しない。

関数を定義する際、渡された引数はなるべく変更しないようにする。 イミュータブルな関数を作りなさい。ということですね! 副作用はよろしくないです、はい。

moduleでprivate methodを定義する

classだと下記のようにprivate methodを定義できると思います。 class Hoge def public_method1 .... end private def private_method1 ... end しかし、moduleでは方法が少し違います。 module Hoge def public_method1 .... end def private_method1 ... e…

rubyでhashを構造体にしてアクセサっぽくアクセスできるようにする

rubyでhashを構造体にしてアクセサっぽくアクセスできるようにする RubyでHashを構造体にしてアクセサのように取得する 僕はこんな関数にしてみた。 def conversion_of_hash_to_struct(hash) Struct.new(*hash.keys).new(*hash.values.map { |s| Hash === s …

ruby moduleとクラスの違い

moduleはインスタンス(状態)をモテない。 newできない。 メソッドだけを格納できる。 サービスは状態をもたないでイミュータブルにすべきなので、moduleを使う方がよい。

用語集を作る

似た様な用語がたくさんあったり、時と場合により用語が変わってる場合(ほとんどの場合が気分で変わっている)、用語集を提案するとよい。

ruby 30分刻みの時刻リストを作る

10.times.map.each_with_index {|i| Time.parse("18:00")+30.minutes*i}

サービスクラスについて

レビューの指摘事項として「モデルではなくサービスに移動しなさい」というものがありました。 サービスっていうのが良くわからなかったので先生に聞いてみました。 Railsでサービスとフォームを導入してみる話 - assertInstanceOf('Engineer', $a_suenami) …