Upgrade to Pro — share decks privately, control downloads, hide ads and more …

#UV_study_20210629

 #UV_study_20210629

【初心者歓迎】Ruby LT会@オンライン \- connpass
(https://uniquevision.connpass.com/event/215217/)

Shiro Tamaki

June 29, 2021
Tweet

More Decks by Shiro Tamaki

Other Decks in Programming

Transcript

  1. 1
    SinatraΛ࢖ͬͯ
    ॳΊͯWebΞϓϦΛ࡞ͬͯΈͨ
    @shirotamaki
    2021, 6, 29 (Tue) ɹRuby LTձ@ΦϯϥΠϯ
    ओ࠵ : ϢχʔΫϏδϣϯגࣜձ༷ࣾ
    ʮRubyΫοΩϯάʯ

    View Slide

  2. ˙΋͘͡
    2
    • ࣗݾ঺հ
    • ࡞ΔϝχϡʔɺࡐྉͳͲͷ঺հ
    • ࡐྉʹ͍ͭͯਂງΓ
    • ࡞Γํ

    View Slide

  3. ˙ࣗݾ঺հ
    @shirotamaki ɹ
    ۄ৓ ࢤ࿠
    ϑΟϤϧυϒʔτΩϟϯϓ32ظੜ
    Rubyྺ: 6ϲ݄
    3

    View Slide

  4. ˙RubyͰ࡞Δϝχϡʔ
    4
    JSONͱHashΛ࢖ͬͨSinatra࢈
    ϝϞΞϓϦ

    View Slide

  5. ˙ࡐྉ
    * JSONϑΝΠϧ
    * HashΦϒδΣΫτ
    5
    ˙༻ҙ͢Δ΋ͷ
    • Ruby 3.0.0
    • Sinatra

    View Slide

  6. ˙ௐຯྉ
    * params ϋογϡ ɹ
    * JSON.parseϞδϡʔϧؔ਺
    * JSON.dumpϞδϡʔϧؔ਺
    6

    View Slide

  7. ˙ਂງΓ

    View Slide

  8. ˙Sinatraʢγφτϥʣ
    8
    Ruby੡ͷWebΞϓϦέʔγϣϯϑϨʔϜϫʔΫͰ͢ɻ
    هड़಺༰͕؆ܿͰ෼͔Γ΍͘͢ͱͯ΋͍ܰͷ͕ಛ௃Ͱ͢ɻ
    ͦͷͨΊɺখن໛ͳΞϓϦέʔγϣϯΛ࡞੒͢Δͷʹ
    ޲͍͍ͯ·͢ɻ

    View Slide

  9. ˙JSONʢδΣΠιϯʣ
    9
    JavaScript Object Notationͷུ
    ߏ଄Խͨ͠σʔλΛදͨ͢ΊͷςΩετϑΥʔϚοτͷҰछͰ͢ɻ
    JavaScript͚ͩͰͳ͘ɺଟ͘ͷϓϩάϥϛϯάݴޠ΍WebαʔϏε
    ʹରԠ͍ͯ͠·͢ɻ
    ઃఆϑΝΠϧ΍σʔλަ׵ͳͲΛ͢Δͱ͖ʹΑ͘࢖ΘΕ͍ͯ·͢ɻ
    ϑΝΠϧ໊͸ʮKTPOʯɹ
    ˞σʔλϕʔεͷ؅ཧ͸JSONϑΝΠϧΛར༻͠·͢ɻ
    ɹࠓճɺActiveRecord͸ར༻͠·ͤΜɻ

    View Slide

  10. ˙JSON͕ରԠ͍ͯ͠Δσʔλܕ
    10
    JSONʹ૊ΈࠐΈͰ༻ҙ͞Ε͍ͯΔσʔλܕ̒ͭ
    * ΦϒδΣΫτ
    * ഑ྻ
    * จࣈྻ
    * ਺஋
    * ϒʔϦΞϯ
    * null

    View Slide

  11. ˙Hashʢϋογϡʣ
    11
    ϋογϡ͸ɺʮΩʔʯͱʮ஋ʯͷηοτͰσʔλΛ؅ཧ͢Δ
    ΦϒδΣΫτͷ͜ͱͰ͢ɻ
    ଞͷݴޠͰ͸ʮ࿈૝഑ྻʯʮࣙॻʯʮϚοϓʯͱݺ͹ΕͨΓ
    ͠·͢ɻ
    ӳޠͷHash͸ɺίϚ੾Ε೑ͱ໺ࡊΛᖱΊͨྉཧͷࣄΛࢦ͠ɺ
    ϋογϡυϏʔϑͷޠݯͰ΋͋Γ·͢ɻ

    View Slide

  12. ˙Hashͷ2ͭͷॻ͖ํ
    12
    ϋογϡϩέοτ ࢖ͬͨॻ͖ํ
    ϋογϡϩέοτΛলུͨ͠ॻ͖ํ

    View Slide

  13. ˙Ruby ΫοΩϯάελʔτʂ
    13

    View Slide

  14. 14
    ˙·ͣ͸ɺrequireͰԼ͝͠Β͑

    View Slide

  15. ˙৽نϝϞೖྗը໘ͷϧʔςΟϯά
    15

    View Slide

  16. ˙ڞ௨͢ΔϨΠΞ΢τΛ·ͱΊΔ
    16
    index.erb
    new.erb

    View Slide

  17. 17
    ˙formλάͰೖྗɾૹ৴ϑΥʔϜΛ࡞੒͢Δ

    View Slide

  18. ˙్தܦաɺHTMLΛϨϯμϦϯάʢը૾Λੜ੒ʣ
    18

    View Slide

  19. ˙HashΛJSON΁ม׵͠ϑΝΠϧΛอଘ͢Δ
    19
    JSON
    Hash
    JSON.dump

    View Slide

  20. ˙JSONϑΝΠϧͱͯ͠ɺdbσΟϨΫτϦ΁อଘ͢Δ
    20

    View Slide

  21. ˙ϝϞҰཡදࣔ༻ͷϧʔςΟϯά
    21
    JSON Hash
    JSON.parse

    View Slide

  22. ˙Ұཡදࣔ༻ͷerbΛ࡞੒͢Δ
    22

    View Slide

  23. ˙πϦʔߏ଄
    23

    View Slide

  24. ˙URL΁ΞΫηεͯ͠ΈΔ
    24

    View Slide

  25. ˙ग़དྷ্͕Γʂ
    25

    View Slide

  26. ˙ࢀߟهࣄɾࢀߟॻ੶
    26
    ϓϩάϥϛϯάݴޠ Ruby ϦϑΝϨϯεϚχϡΞϧ https:/
    /docs.ruby-lang.org/ja/(ࢀর2021,6,28)
    Sinatra: README http:/
    /sinatrarb.com/intro-ja.html/(ࢀর2021.6.28)
    ϦϒϩϫʔΫε ஶ/ߴڮ ੐ٛ ؂म/ʰεϥεϥಡΊΔ Ruby;Γ͕ͳϓϩάϥϛϯά ʱ/ΠϯϓϨεϒοΫε/2019೥
    ޒेཛྷ๜໌ɼদԬߒฏ ஶ/ʰθϩ͔ΒΘ͔Δ Ruby ௒ೖ໳ʱ/ٕज़ධ࿦ࣾ/2018೥
    ߴڮ੐ٛɺޙ౻༟ଂ ஶ/ʰͨͷ͍͠Rubyୈ6൛ʱ/SBΫϦΤΠςΟϒ/2019೥
    ҏ౻३Ұ ஶ/ʰϓϩΛ໨ࢦ͢ਓͷͨΊͷRubyೖ໳ ݴޠ࢓༷͔Βςετۦಈ։ൃɾσόοάٕ๏·Ͱʱ/ٕज़ධ࿦ࣾ/
    2017೥
    ࢁຊཅฏஶ/ ʰWebΛࢧ͑Δٕज़ɹHTTP, URI, HTML, ͦͯ͠RESTʱ/ٕज़ධ࿦ࣾ/2010೥

    View Slide

  27. ˙ϒϩά΍ͬͯ·͢
    27
    ͸ͯͳϒϩά
    D IT YɹλϚΩ޻຿ళͷIT೔ه
    https:/
    /shirotamaki.hatenablog.com/

    View Slide

  28. ͝ਗ਼ௌ͍͖ͨͩ͋Γ͕ͱ͏͍͟͝·ͨ͠

    View Slide