破いて捨てたノート

Webやテクノロジーやそれ以外に関する思いつき

2014-02-01から1ヶ月間の記事一覧

2014年2月に読んだ本

技術書 Crafting Rails 4 Applications: Expert Practices for Everyday Rails Development Crafting Rails 4 Applications: Expert Practices for Everyday Rails Development (The Facets of Ruby)作者: José Valim出版社/メーカー: Pragmatic Bookshelf発…

Ruby 仮引数の * と実引数の *

よく混乱してしまうので整理。 仮引数の * は可変長引数 def greet name, *messages messages.each do |message| puts "#{message}, #{name}." end end greet 'Ruby', 'Hello', 'こんにちは' # => "Hello, Ruby." "こんにちは, Ruby." # 単に引数を無視した…

列挙型の値を保存するときはintegerで保存しとけActiveRecord::Enum

列挙型とは、有限集合として持つ抽象データのことで例えばstatusなんかがそうです。 stasus: [:active, :archived] みたいなやつ。 例えば、Conversationクラスにstatusカラム(active, archived)を持っている場合を考えてみましょう。 主な保存方法として…

Rubyの`Enumerable#each_with_object`を使ってみた

attr_accessorで生やしたattributes達とそのvaluesをハッシュとして欲しいことがあり、最初はこんな感じに書いた。 hoge_attributes = {} %I(user_name first_name last_name email).each do |attr| hoge_attributes[attr] = @hoge.send(attr) end 次の日に…

【MySQL】MySQLはtrailing spaceを無視する【クソ仕様】

まずはこのコードを見てください。 User.where(user_name: 'yachibit ') User Load (0.5ms) SELECT `users`.* FROM `users` WHERE `users`.`user_name` = 'yachibit ' => [#<User id: 1, first_name: "Bit", last_name: "Yachi", user_name: "yachibit", ... >] 予想として、'yachibit'さんは存在しますが、'yachibit 'さんはいないので、レコ</user>…