辛かった愚痴スライドです
ॳΊͯͷRailsόʔδϣϯΞοϓ͕ਏͯ͘ɺπϥͯ͘ɺͭΒ͔ͬͨkawasaki.rb#053 @MasaruTech
View Slide
ࣗݾհ• MasaruTechʢtwitterʣ• େఉ কʢ͓͓ɹ·͞Δʣ• ීஈRailsΛ͓ͬͯࣄ͍ͯ͠ΔSIer
ॳΊͯࣄͰͬͨRailsͷϝʔδϟʔόʔδϣϯΞοϓ͕ਏ͔ͬͨΜͰɺkawasaki.rbͰు࿐͍ͤͯͩ͘͞͞
࣍• ਏ͔ͬͨᶃ• ਏ͔ͬͨᶄ• ਏ͔ͬͨᶅ• ൪֎ฤ
ਏ͔ͬͨᶃ
params͕ActionController::ParametersΦϒδΣΫτʹ
strong parameterରԠΛͪΌΜͱ͍ͬͯͳ͍Օॴ͕ɺɺɺXxxApi.search(params[:filters])Έ͍ͨʹࡶʹ͍ͬͯͨͱ͜Ζ͕ɺɺɺେମͪΌΜͱstrong parameterରԠ͍ͯ͠Δ&ςετͰ͔͕ͬͨɺAPIαʔόʔͱͷ࿈ܞՕॴελϒԽ͞ΕͯΔͷͰ࣮ࡍʹಈ͔ͯ͠ݟΔ·Ͱؾ͔ͮͳ͍
ਏ͔ͬͨᶄ
Rails4.2→5.0্͛ͨޙେྔʹग़ΔDeprecation WarningRDEPRECATION WARNING: Using positionalarguments in functional tests has beendeprecated,ɹin favor of keyword arguments, andwill be removed in Rails 5.1.
ςετίʔυͷॻ͖ํ͕มΘΔɻɻget :show, { id: 1 }, nil, { notice: "This is a flashmessage" }↓ keywordҾΛར༻ͨ͠ελΠϧʹͳΔʂʂget :show, params: { id: 1 }, flash: { notice: "Thisis a flash message" }, session: nil
ͼ͜Δࣗ༝ͳه๏• get :index, {name: 'tom', age: 31}• get :index, name: 'tom', age: 31• get ‘index’, {name: 'tom', age: 31}• get :index, test_paramsͳͲͳͲ
֖Λ։͚ͯΈΕࠓճͷRails5ͷόʔδϣϯΞοϓରԠͰɺspec/controllersͷมߋ84%ʂʂ͓ͦΒ͘ɺLintίʔυϨϏϡʔ͕ͪΌΜͱ͍ͯ͠Δօ͞Μͷͱ͜ΖͰਏ͘ͳ͍Ͱ͠ΐ͏ʂ
ਏ͔ͬͨᶅ
x3
RailsΞϓϦ͕3ͭࠓؔΘ͍ͬͯΔͷɺRailsΞϓϦ3ͭͰߏ͞Ε͍ͯΔͷͰɺ͜ͷਏ͔ͬͨ࡞ۀΛ3ճΓ·ͨ͠
൪֎ฤ
activerecord_session-storeͱconfig/initializers/new_framework_defaults.rb
activerecord_session-storeΛ͍ͬͯΔͱconfig/initializers/new_framework_defaults.rbͰRails.application.config.active_record.belongs_to_required_by_default=falseΛࢦఆ্ͯ͠ॻ͖͞Εͳ͍ɺɺɺ
ݪҼhttp://y-yagi.tumblr.com/post/150899354290/rails ΑΓRailsͷinitializersgemͷಡΈࠐΈޙʹ࣮ߦ͞Ε·͢ɻ ͦͷͨΊɺgemͷதͰActiveRecordΛࢀর͍ͯ͠Δ(ActiveRecord::Baseʹରͯ͠moduleΛՃ͍ͯͨ͠Γ͢Δ)ɺ͔ͭɺదͳܗͰActiveRecordΛࢀর͍ͯ͠ͳ͍߹ɺActiveRecord::BaseͷॳظԽॲཧ͕ͦͷλΠϛϯάͰߦΘΕͯ͠·͍ɺinitializersͰઃఆ͢Δલʹbelongs_to_required_by_defaultͷ͕ઃఆ͞Εͯ͠·͍·͢(belongs_to_required_by_defaultͷॳظnilͳͷͰɺ্هͷΑ͏ʹnil͕දࣔ͞ΕΔ)