Essentail Rails Design Pattern

Write Good Rails Code

Column 超過 10 個請注意

場景

#TODO

Virtual Attribute

用 getter / setter 造出 virtual attribute

1
2
3
4
5
6
7
8
9
10
11
<%= f.text_field :full_name %>

def full_name
  [first_name, last_name].join(' ')
end

def full_name=(name)
  split = name.split(' ', 2)
  self.first_name = split.first
  self.last_name = split.last
end

Serialize

把小資料存在同一個 column 內

1
2
3
4
5
6
class User < ActiveRecord::Base
  serialize :preferences
end

user = User.create(:preferences => { "background" => "black","display" => large })
User.find(user.id).preferences # => { "background" => "black","display" => large }

Comments