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

kawasakirb053

masaru-tech
October 26, 2017
5.2k

 kawasakirb053

辛かった愚痴スライドです

masaru-tech

October 26, 2017
Tweet

Transcript

  1. ॳΊͯͷRailsόʔδϣϯΞοϓ͕
    ਏͯ͘ɺπϥͯ͘ɺͭΒ͔ͬͨ࿩
    kawasaki.rb#053 @MasaruTech

    View Slide

  2. ࣗݾ঺հ
    • MasaruTechʢtwitter౳ʣ
    • େఉ কʢ͓͓͹ɹ·͞Δʣ
    • ීஈ͸RailsΛ࢖͓ͬͯ࢓ࣄ͍ͯ͠ΔSIer

    View Slide

  3. ॳΊͯ࢓ࣄͰ΍ͬͨRailsͷϝʔδϟʔ
    όʔδϣϯΞοϓ͕ਏ͔ͬͨΜͰɺ
    kawasaki.rbͰు࿐͍ͤͯͩ͘͞͞

    View Slide

  4. ໨࣍
    • ਏ͔ͬͨᶃ
    • ਏ͔ͬͨᶄ
    • ਏ͔ͬͨᶅ
    • ൪֎ฤ

    View Slide

  5. ਏ͔ͬͨᶃ

    View Slide

  6. params͕
    ActionController::Parameters
    ΦϒδΣΫτʹ

    View Slide

  7. strong parameterରԠΛ
    ͪΌΜͱ΍͍ͬͯͳ͍Օॴ͕ɺɺɺ
    XxxApi.search(params[:filters])Έ͍ͨʹࡶʹ΍͍ͬͯ
    ͨͱ͜Ζ͕ɺɺɺ
    େମ͸ͪΌΜͱstrong parameterରԠ͍ͯ͠Δ&ςετ
    Ͱ෼͔͕ͬͨɺAPIαʔόʔͱͷ࿈ܞՕॴ͸ελϒԽ͞
    ΕͯΔͷͰ࣮ࡍʹಈ͔ͯ͠ݟΔ·Ͱؾ͔ͮͳ͍

    View Slide

  8. ਏ͔ͬͨᶄ

    View Slide

  9. Rails4.2→5.0΁্͛ͨ௚ޙ
    େྔʹग़Δ
    Deprecation Warning
    RDEPRECATION WARNING: Using positional
    arguments in functional tests has been
    deprecated,ɹin favor of keyword arguments, and
    will be removed in Rails 5.1.

    View Slide

  10. ςετίʔυͷॻ͖ํ͕มΘΔɻɻ
    get :show, { id: 1 }, nil, { notice: "This is a flash
    message" }
    ↓ keywordҾ਺Λར༻ͨ͠ελΠϧʹͳΔʂʂ
    get :show, params: { id: 1 }, flash: { notice: "This
    is a flash message" }, session: nil

    View Slide

  11. ͸ͼ͜Δࣗ༝ͳه๏
    • get :index, {name: 'tom', age: 31}
    • get :index, name: 'tom', age: 31
    • get ‘index’, {name: 'tom', age: 31}
    • get :index, test_params
    ͳͲͳͲ

    View Slide

  12. ֖Λ։͚ͯΈΕ͹
    ࠓճͷRails5΁ͷόʔδϣϯΞοϓରԠͰɺ
    spec/controllersͷมߋ͸໿84%ʂʂ
    ͓ͦΒ͘ɺLint΍ίʔυϨϏϡʔ͕ͪΌΜͱͯ͠
    ͍Δօ͞Μͷͱ͜ΖͰ͸ਏ͘ͳ͍Ͱ͠ΐ͏ʂ

    View Slide

  13. ਏ͔ͬͨᶅ

    View Slide

  14. x3

    View Slide

  15. RailsΞϓϦ͕3ͭ
    ࠓؔΘ͍ͬͯΔ΋ͷ͸ɺRailsΞϓϦ3ͭͰߏ੒͞
    Ε͍ͯΔͷͰɺ͜ͷਏ͔ͬͨ࡞ۀΛ3ճ΍Γ·͠
    ͨ

    View Slide

  16. ൪֎ฤ

    View Slide

  17. activerecord_session-storeͱ
    config/initializers/
    new_framework_defaults.rb

    View Slide

  18. activerecord_session-storeΛ࢖͍ͬͯΔͱ
    config/initializers/new_framework_defaults.rbͰ
    Rails.application.config.active_record.belongs_t
    o_required_by_default=false
    Λࢦఆͯ͠΋্ॻ͖͞Εͳ͍ɺɺɺ

    View Slide

  19. ݪҼ
    http://y-yagi.tumblr.com/post/150899354290/rails ΑΓ
    Railsͷinitializers͸gemͷಡΈࠐΈޙʹ࣮ߦ͞Ε·͢ɻ ͦͷͨΊɺgem
    ͷதͰActiveRecordΛࢀর͍ͯ͠Δ(ActiveRecord::Baseʹରͯ͠module
    Λ௥Ճ͍ͯͨ͠Γ͢Δ)ɺ͔ͭɺద੾ͳܗͰActiveRecordΛࢀর͍ͯ͠ͳ
    ͍৔߹ɺActiveRecord::BaseͷॳظԽॲཧ͕ͦͷλΠϛϯάͰߦΘΕͯ
    ͠·͍ɺinitializersͰઃఆ͢Δલʹbelongs_to_required_by_defaultͷ஋
    ͕ઃఆ͞Εͯ͠·͍·͢(belongs_to_required_by_defaultͷॳظ஋͸nil
    ͳͷͰɺ্هͷΑ͏ʹnil͕දࣔ͞ΕΔ)

    View Slide