Slide 1

Slide 1 text

͓͢͢ΊHFNͷ঺հ !DIP@DP ։ൃ-5

Slide 2

Slide 2 text

HFNͱ͸ʁ w 3VCZͷϥΠϒϥϦΛύοέʔδԽ͠ ͨ΋ͷ w 1)1Ͱ͍͏QFBSΈ͍ͨͳ΋ͷ w ύοέʔδ؅ཧγεςϜࣗମ͸ 3VCZ(FNTͱݺͿ

Slide 3

Slide 3 text

Πϯετʔϧ $ gem install rails

Slide 4

Slide 4 text

ݕࡧ $ gem search -r mysql

Slide 5

Slide 5 text

*** REMOTE GEMS *** activerecord-jdbcmysql-adapter (1.2.2, 1.0.3 java) activerecord-mysql-adapter-flags (0.0.3) activerecord-mysql2-retry-ext (0.1.0) activerecord-mysql2legacydb-adapter (0.2.0) activerecord-mysql2spatial-adapter (0.4.2) activerecord-mysqlspatial-adapter (0.4.1) airblade-mysql_s3_backup (0.0.4) aqueduct-mysql (0.1.0) capistrano-mysqldump (1.06) create_rails_mysql_db (0.2.3) ...

Slide 6

Slide 6 text

ϩʔΧϧHFNҰཡ $ gem list

Slide 7

Slide 7 text

*** LOCAL GEMS *** abstract (1.0.0) actionmailer (3.2.1) actionpack (3.2.1) activemodel (3.2.1) activerecord (3.2.1) activeresource (3.2.1) activesupport (3.2.1) addressable (2.2.8) arel (3.0.0) awesome_print (1.0.2) ...

Slide 8

Slide 8 text

SVCZHFNTPSH

Slide 9

Slide 9 text

SVCZHFNTPSHͱ͸ʁ w IUUQSVCZHFNTPSH w HFNͷϗεςΟϯάαʔϏε w 1)1Ͱ͍͏QFBSΈ͍ͨͳ΋ͷ w  HFNT w  VTFST w HFNJOTUBMM͸σϑΥϧτͰSVCZHFNTΛݟʹߦ͘

Slide 10

Slide 10 text

CVOEMFS w SVCZHFNTΑΓ্ҐϨΠϠʔͷύοέʔδ؅ ཧγεςϜ w ඞཁͱͳΔHFNΛ(FNpMFʹॻ͍͓ͯ͘

Slide 11

Slide 11 text

# Gemfile source 'https://rubygems.org' gem 'rails’ gem 'mysql2' ...

Slide 12

Slide 12 text

Πϯετʔϧ # Gemfile ʹهड़͞Εͨ gem ΛΠϯετʔϧ͢Δ $ bundle install

Slide 13

Slide 13 text

Կ͕͍͍ͷʁ w ͋ͷHFN͸։ൃ؀ڥʹ͸ೖ͍ͬͯΔ͚Ͳɺ ຊ൪؀ڥʹೖ͍ͬͯͳ͍ͷͰΞϓϦ͕ಈ͔ͳ ͍ʂͱ͍͏໰୊ΛղফͰ͖Δ w Πϯετʔϧ͢ΔόʔδϣϯΛݻఆͰ͖Δ w HFNؒͷґଘؔ܎Λղܾͯ͘͠ΕΔ

Slide 14

Slide 14 text

ཁ͸ɺ#VOEMFS͸؀ڥຖ ͷࠩҟΛͳͯ͘͘͠ΕΔ ΠΧͨ͠Ϡπ

Slide 15

Slide 15 text

͓͢͢ΊHFNT w DVSSZCV΍ࠓ΍͍ͬͯΔϓϩδΣΫτ Ͱ࢖༻͍ͯ͠Δओʹ3BJMT޲͚ͷHFN w ͔͜͜Β͕ຊ୊ͳ͸ͣͳͷͰ͕࣌ؒ͢ ͕ͳ͍ͷͰۦ͚଍Ͱ͍͖·͢

Slide 16

Slide 16 text

ೝূपΓ

Slide 17

Slide 17 text

%FWJTF

Slide 18

Slide 18 text

w ଟػೳͳೝূ༻ϥΠϒϥϦ w 0NOJ"VUIͱ૊Έ߹ΘͤΔ͜ͱͰ 'BDFCPPL΍5XJUUFSͳͲͱ0"VUIೝ ূ͢Δ͜ͱ͕Ͱ͖Δ w ͪΐͬͱن໛͕େ͖͍ؾ΋͢Δ w IUUQTHJUIVCDPNQMBUBGPSNBUFD

Slide 19

Slide 19 text

%BUBCBTF"VUIFOUJDBUBCMF w Ұൠతͳ ೝূΛͯ͘͠ΕΔ w 3&45GVMͳ63-ϧʔςΟϯάΛੜ੒

Slide 20

Slide 20 text

3FHJTUFSBCMF w Ϣʔβʔొ࿥ɺฤू w %BUBCBTF"VUIFOUJDBUBCMFͱ૊Έ߹ Θͤͯ࢖༻

Slide 21

Slide 21 text

3FNFNCFSBCMF w ϩάΠϯঢ়ଶΛอ࣋

Slide 22

Slide 22 text

$POpSNBCMF w Ϣʔβʔొ࿥ˠૹ৴͞Εͨϝʔϧͷ 63-Λ౿ΜͰ΋Βͬͯొ࿥׬ྃ

Slide 23

Slide 23 text

3FDPWFSBCMF w ύεϫʔυΛ๨Ε·͔ͨ͠ʁˠૹ৴͞ ΕͨϝʔϧʹΑͬͯύεϫʔυΛϦ ηοτ

Slide 24

Slide 24 text

$BO$BO

Slide 25

Slide 25 text

$BO$BO

Slide 26

Slide 26 text

"OF$BO

Slide 27

Slide 27 text

4IJ#B

Slide 28

Slide 28 text

w ݖݶपΓΛ৭ʑ΍ͬͯ͘ΕΔ w ؅ཧऀϢʔβʔͷಛݖͱ͔ w ʮ͜ͷ౤ߘΛ࡞੒ͨ͠ϢʔβʔͷΈ࡟আ͕Ͱ͖ Δʯͱ͍ͬͨνΣοΫΛεϚʔτʹߦ͑Δ w ೝূ͸୲౰֎ͳͷͰ%FWJTFͳͲͱซ༻͢Δඞཁ ͕͋Δ w IUUQTHJUIVCDPNSZBOCDBODBO

Slide 29

Slide 29 text

# app/models/ability.rb class Ability include CanCan::Ability def initialize(user) user ||= User.new can :destroy, Post, user_id: user.id end end # app/controllers/posts_controller.rb class PostsController < ApplicationController before_filter :authenticate_user! load_and_authorize_resource # app/views/posts/edit.erb <% if can? :destroy, @user %> <%= link_to '࡟আ', posts, method: :delete %> <% end %>

Slide 30

Slide 30 text

σʔλϕʔεपΓ

Slide 31

Slide 31 text

FOVN@DPMVNO

Slide 32

Slide 32 text

w NJHSBUJPOͰFOVNܕΛ࢖༻Մೳʹ w ͜ΕΛ࢖Θͳͯ͘΋ແཧ΍Γॻ͚Δ͕ɺ TDIFNBSC͕WBSDIBS  ͱ͔ʹͳΔͷ ͰΑΖ͘͠ͳ͍ w IUUQTHJUIVCDPNFMFDUSPOJDL FOVN@DPMVNO

Slide 33

Slide 33 text

GPSFJHOFS

Slide 34

Slide 34 text

w NJHSBUFϑΝΠϧʹ؆୯ʹ֎෦Ωʔ੍໿Λه ड़ w BEE@GPSFJHO@LFZ DPNNFOUT QPTUT w FYFDVUFϝιουΛ࢖༻͢Ε͹42-Ͱ΋ॻ ͚Δ͕ͪ͜Βͷ΄͏ָ͕ w IUUQTHJUIVCDPNNBUUIVIJHHJOT GPSFJHOFS

Slide 35

Slide 35 text

SBJMT@BDUT@BT@QBSBOPJE

Slide 36

Slide 36 text

w ࿦ཧ࡟আ w ΧϥϜʹEFMFUFE@BUΛ௥Ճ͠ɺϞσϧʹ BDUT@BT@QBSBOPJEͱॻ͚ͩ͘ w IUUQTHJUIVCDPNHPODBMPTTJMWB SBJMT@BDUT@BT@QBSBOPJE

Slide 37

Slide 37 text

ςετपΓ

Slide 38

Slide 38 text

34QFD

Slide 39

Slide 39 text

w 5FTU6OJUʹ୅ΘΔςεςΟϯάϑϨʔ ϜϫʔΫ w STQFDSBJMTͱҰॹʹ࢖͏ͱ޾ͤʹͳΕΔ w IUUQTHJUIVCDPNSTQFDSTQFD

Slide 40

Slide 40 text

$BQZCBSB

Slide 41

Slide 41 text

w ౷߹ςετ༻ςεςΟϯάϑϨʔϜϫʔΫ w ϑΥʔϜʹ஋ΛೖΕͯTVCNJUΛԡͯ͠ɺ Έ͍ͨͳ͜ͱΛ%4-Ͱॻ͚Δ w IUUQTHJUIVCDPNKOJDLMBT DBQZCBSB

Slide 42

Slide 42 text

(VBSE

Slide 43

Slide 43 text

w ϑΝΠϧΛฤूͨ͠ΒࣗಈͰςετΛ࣮ߦ w IUUQTHJUIVCDPNHVBSEHVBSE

Slide 44

Slide 44 text

4QPSL

Slide 45

Slide 45 text

w SBLFTQFDͷىಈ஗͗͢ϫϩλ w %3Cͱݺ͹ΕΔ෼ࢄΦϒδΣΫτϓϩά ϥϛϯά༻ͷαʔόʔʹ3BJMTΛϩʔυ͠ ͓ͯ͘ w ىಈ଎͗͢ϫϩλ w IUUQTHJUIVCDPNTQPSLSCTQPSL

Slide 46

Slide 46 text

ศརͳϠπΒपΓ

Slide 47

Slide 47 text

$BSSJFS8BWF

Slide 48

Slide 48 text

w ը૾ͷΞοϓϩʔυ ը૾͡Όͳͯ͘΋ྑ͍ w ଟػೳ ը૾ͷϦαΠζ΍ΫϩοϓͳͲ w GPHͱҰॹʹ࢖༻͢Δ͜ͱͰɺ"844ɺ (PPHMF4UPSBHFͳͲͷετϨʔδʹ؆୯ʹ ը૾Λอଘ͢Δ͜ͱ͕Ͱ͖Δ w IUUQTHJUIVCDPNKOJDLMBT DBSSJFSXBWF

Slide 49

Slide 49 text

$BQJTUSBOP

Slide 50

Slide 50 text

w σϓϩΠπʔϧ w %4-Ͱॻ͚Δ w ͕ɺ׳Εͳ͍ͱઃఆ͕ͩΔ͍ w ϦϞʔταʔόʔͰίϚϯυΛ͚ͨͨΔҝɺσ ϓϩΠҎ֎Ͱ΋࢖༻Մೳ Կ͔ΛΠϯετʔϧ͢ Δͱ͔ w IUUQTHJUIVCDPNDBQJTUSBOPDBQJTUSBOP

Slide 51

Slide 51 text

BXFTPNF@QSJOU

Slide 52

Slide 52 text

w Q΍QQΑΓΦϒδΣΫτΛݟ΍͘͢ DPOTPMFʹදࣔͯ͘͠ΕΔ w ΧελϚΠζՄೳ w IUUQTHJUIVCDPNNJDIBFMEW BXFTPNF@QSJOU

Slide 53

Slide 53 text

No content

Slide 54

Slide 54 text

ྑ͍ײ͡ͳHFN͕ ͋ͬͨΒڭ͑ͯԼ͞ ͍ɻ͓ئ͍͠·͢ɻ

Slide 55

Slide 55 text

͝ਗ਼ௌ͋Γ͕ͱ͏͝ ͍͟·ͨ͠ɻ