Fat Controller Fat Model ???
୭͕௨Δಓ
ServiceΦϒδΣΫτ
FormΦϒδΣΫτ, etc..
Slide 14
Slide 14 text
ͬͱ͘ͱྑͦ͞͏ᶅ
Concern
Slide 15
Slide 15 text
ؔ৺ࣄΛͻͱ͔ͨ·Γʹͯ͠ཧ͢Δʂ
Slide 16
Slide 16 text
class Group
before_save :set_default_name_if_need
def post(comment); end
end
!
class Message
before_save :set_default_name_if_need
def post(comment); end
end
ಉ͡Α͏ͳॲཧ͕͋Δ߹
Slide 17
Slide 17 text
module Commentable
extend ActiveSupport::Concern
!
included do
before_save :set_default_name_if_need
end
!
def post(comment)
Comment.create!(content: comment)
end
end
Slide 18
Slide 18 text
class Group
include Commentable
end
!
class Message
include Commentable
end
εοΩϦ
Slide 19
Slide 19 text
ͬͱ͘ͱྑͦ͞͏ᶆ
ϓϨθϯςʔγϣϯ
Slide 20
Slide 20 text
ϑϧωʔϜΛද͍ࣔͨ͠ʂ
Slide 21
Slide 21 text
module UserHelper
def full_name(user)
user.last_name + user.first_name
end
end
VTFSΦϒδΣΫτΛ͢ͷΠέͯͳ͍
Slide 22
Slide 22 text
class User < ActiveRecord::Base
def full_name
last_name + first_name
end
end
7JFXͰ͔͠Θͳ͍ͷʹϞσϧʹஔ͘ʁ
Slide 23
Slide 23 text
module UserDecorator
def full_name
last_name + first_name
end
end
ྫ͑BDUJWF@EFDPSBUPSΛ͏
Started POST "/users"
Processing by UsersController#create as HTML
Parameters: {"email"=>"test@test.com",
“password"=>"secret-value",
“credit_card_number"=>"1111-2222-3333-4444"}
Started POST "/users"
Processing by UsersController#create as HTML
Parameters: {"email"=>"test@test.com",
"password"=>"[FILTERED]",
“credit_card_number"=>"[FILTERED]"}
Slide 40
Slide 40 text
ͬͱ͘ͱྑͦ͞͏ᶊ
ؔ࿈ͨ͠σʔλͷআ
Slide 41
Slide 41 text
class Blog < ActiveRecord::Base
has_many :articles dependent: :destroy
end
#MPHΛআͨ͠Βؔ࿈͢Δ"SUJDMFআ͢Δ