Speaker Deck
Speaker Deck Pro
Sign in
Sign up
for free
do-not-delete-softly
MOROHASHI Kyosuke
August 31, 2015
Programming
12
27k
do-not-delete-softly
MOROHASHI Kyosuke
August 31, 2015
Tweet
Share
More Decks by MOROHASHI Kyosuke
See All by MOROHASHI Kyosuke
moro
1
870
moro
4
630
moro
2
1.4k
moro
0
1.5k
moro
3
2.6k
moro
5
360
moro
7
17k
moro
0
9k
moro
0
9k
Other Decks in Programming
See All in Programming
blendthink
0
390
attsumi
1
340
rshindo
2
290
itosho525
0
350
muttsu_623
0
440
horie1024
1
330
line_developers_tw
1
330
komagata
1
1.8k
asumikan
0
280
o0h
1
1.4k
kazaman97
0
160
kubode
0
170
Featured
See All Featured
bkeepers
52
4.1k
bermonpainter
342
26k
jlugia
216
16k
samanthasiow
56
6.3k
sachag
267
17k
hannesfritz
27
930
tmm1
61
8.3k
matthewcrist
73
7.5k
jcasabona
7
520
brianwarren
83
4.7k
phodgson
87
3.9k
destraynor
146
19k
Transcript
ཧআΛ ͠ͳ͍ 2015-08-31 ཧআCasual Talks #1 @moro
ॾڮګհ(@moro) Kyosuke MOROHASHI
None
None
͍͑ͨ͜ͱ
ཧআͳΜͯ ͳ͔ͬͨ
‣আ͍ͯ͠ͳ͍ ‣আ͍ͯ͠ͳ͍ͷͰআͱ ݺͿ͖Ͱͳ͍ɻ ‣ͥΜͥΜཧతͰsoftͰ ͳ͍.
ཧআΛ ͨ͘͠ͳΔͱ͖
ઈ൛ʹ আϑϥάΛ͚͍ͨ
࣮ݱ͍ͨ͜͠ͱ ‣ ઈ൛ͨ͠Λཧআͯ͠ɺ ҰཡݕࡧͰදࣔ͞Εͳ͍Α ͏ʹ͍ͨ͠ɻ ‣ ৽͘͠ߪೖͰ͖ͳ͍ͨ͘͠ɻ
ຊʹ”আ”ͳͷ͔? ‣աڈʹങͬͨސ٬ͷߪങཤ ྺʹදࣔ͢Δ ‣ച্ूܭͷରʹͳΔ
΄Μͱ͏ʹཉ͔ͬͨ͠ͷ status = :ઈ൛
class Product < AR::Base scope :sellable, -> { where.not(status: :絶版)
} end class ProductsController < AppC def index @products = Product.sellable.order(nantoka) end end class Backroom::ProductsController < AppC def index @products = Product.order(kantoka) end end
default_scope :sellable ඇਪɻʮσϑΥϧτʯ ͡Όͳ͍Ͱ͢͠
class Order < AR::Base default_scope -> { where(deleted_at: nil }
end # 忘れた頃に def clean_old_orders(orders) orders.unscoped.destroy_all # さらに忘れた頃に clean_old_orders(Order.where(company_id: 42))
ୀ৬ͨ͠ձһʹ আϑϥάΛ͚͍ͨ
࣮ݱ͍ͨ͜͠ͱ ‣ୀձͨ͠ձһɺ ϩάΠϯग़དྷͳ͍Α͏ʹɺ ཧআ͍ͨ͠
ຊʹ”আ”ͳͷ͔? ‣ ͦͷձһͷσʔλͲ͏ͳΔ? ‣ a: ͥΜͿফ͢ ‣ b: ͦͷ··͢ ‣
c: ಗ໊ͱͯ͢͠ ‣ d: γεςϜϢʔβ͚ସ͑
ຊʹ”আ”ͳͷ͔? ‣a: ͥΜͿফ͢ ‣ ফ͠·͠ΐ͏!!! ‣ ෆ҆ͳΒඞཁͳͱ͜Ζ͚ͩ ΞʔΧΠϒ
ຊʹ”আ”ͳͷ͔? ‣b: ͦͷ··͢ ‣ ୀձձһΛ status = :ログイ ン不可 ʹ͢Δ
(statusͦΕͦΕͰ pros/cons ͋Δͷͷ…) ‣ೝূใ͚ͩফ͢
ຊʹ”আ”ͳͷ͔? ‣c: ಗ໊ͱͯ͢͠ ‣ݸਓใͳͲΛফ͢Α͏ɺ ॲཧΛ͢
ຊʹ”আ”ͳͷ͔? ‣ d: γεςϜϢʔβ͚ସ͑ ‣ͦ͏͍͏ॲཧΛ͢
ຊʹ”আ”ͳͷ͔? ‣ a: Ҏ֎ʮআʯ͍ͯ͠ͳ͍ ‣ a: Ұॹʹফ͢ ‣ b: ͦͷ··͢
‣ c: ಗ໊ͱͯ͢͠ ‣ d: γεςϜϢʔβ͚ସ͑
ʮཧআʯͰͳ͘ Γ͍ͨ͜ͱʹԊͬͨઃܭΛ
อظݶͷ ա͗ͨσʔλʹ আϑϥάΛ͚͍ͨ
࣮ݱ͍ͨ͜͠ͱ ‣ҰఆظؒҎ্ݹ͍σʔλΛ ཧআ͠ɺҰཡʹදࣔ͞ Εͳ͍ͨ͘͠ɻ
ຊʹ”আ”ͳͷ͔? ‣ ϩάΛऔͬͯফ͢ɻ ‣ আͰ͖ͦ͏ɻ ‣ ࠪʹඞཁetcͳͲͳΒ͢ɻ
ຊʹ”আ”ͳͷ͔? ‣ٯʹߟ͑Δɻ ‣ Ұཡʹදࣔ͢Δ߲Λ ৽͍͠ͷ͚ͩʹ͢Δɻ ‣ σʔλྔͷݒ೦ͱɺUXͷ ݒ೦ͦΕͧΕผͷɻ
default_scope と同じ問題 一番最初の画面に出すもの、が デフォルトなわけではない。
ͳͥཧআΛ ͖͢Ͱͳ͍ͷ͔ (reprise)
‣ࢭΊ͕࣌Θ͔Βͳ͍ɻ ‣ શςʔϒϧʹআϑϥά ‣ ͭͶʹJOINͯ͠ϑϥάνΣοΫ
‣σʔλͷऴΘΓΛ ઃܭͰ͖͍ͯͳ͍ɻ ‣ઃܭͰ͖͍ͯͳ͍ͷͰ ࢭΊ͕ܾ࣌ΊΒΕͳ͍ɻ
ͳͷʹʮཧআʯͰ Կ͔ΛݴͬͨงғؾʹͳΔɻ ࢛จࣈख़ޠ͜Θ͍ɻ
ཧআΛ ͠ͳ͍
‣σʔλͷʮऴΘΓํʯΛ ;ͭ͏ʹઃܭ͢Δɻ ‣࢛จࣈख़ޠͰԿ͔Λ ݴͬͨؾʹͳΒͳ͍ɻ
͋ΘͤͯಡΈ͍ͨ: http://qiita.com/Jxck_/items/156d0a231c6968f2a474
‣σʔλͷʮऴΘΓํʯΛ ;ͭ͏ʹઃܭ͢Δɻ ‣࢛จࣈख़ޠͰԿ͔Λ ݴͬͨؾʹͳΒͳ͍ɻ