週刊Railsウォッチ(20171110)dry-rbでFormObjectを作る、RailsのSQLインジェクション手法サイト、年に1度だけ起きるバグほか

こんにちは、hachi8833です。先週は文化の日でウォッチをお休みいたしました。 11月最初のウォッチ、いってみましょう。 RubyWorld Conference 2017無事終了 2017.rubyworld-conf.orgより 今年も盛り上がったようです。皆様お疲れさまでした。 https://t.co/OjRtmuJenC RWC 2017のtogetter、分量がすごい。#rubyworld — sho-h (@sho_hashimoto) November 6, 2017 つっつきボイス: 「今年は残念ながら行けなかったんで、松江の馴染みのおでん屋食べられなかった(´・ω・`)」「今回はクックパッドの発表がいつもより多かったみたいでした」 Rails: 今週の改修 改良: beforeSendを付けずにRails.ajaxを呼び出せるようになった PR: #31002 Call Rails.ajax without beforeSend // actionview/app/assets/javascripts/rails-ujs/utils/ajax.coffee – unless options.beforeSend?(xhr, options) + if options.beforeSend? && !options.beforeSend(xhr, options) // 変更前 Rails.ajax({ type: ‘get’, url: ‘/’, beforeSend: function() { return true }, success: function() { // do something } // 変更後 Rails.ajax({ type: ‘get’, url: ‘/’, success: function() { // do something } つっつきボイス: 「以前は使わないときにもbeforeSend:書かないといけなかったのか」 改善: rescue画面でソースが改行されないようになった PR: #31013 Prevent source line wrapping in rescue layout つっつきボイス: 「行数表示と実際の行が一致するようになったのね」「エディタではワードラップする方が好きなんですが、英語圏だとエディタをワードラップしない人が割りと多い気がします」 Railsから非推奨コードを削除 PR: #30945 Remove deprecations 以下の非推奨コードが削除されました。 erubis: 今後はerubiになります。 evented Redisアダプタ ActiveRecordの以下を削除 #sanitize_conditions #scope_chain .error_on_ignored_order_or_limit設定 #verify!の引数 #indexesのname引数 ActiveRecord::Migrator.schema_migrations_table_name supports_primary_key? supports_migrations? initialize_schema_migrations_tableとinitialize_internal_metadata_table dirty recordへのlock!呼び出し 関連付けでクラスに:class_nameを渡す機能 index_name_exists?のdefault引数 ActiveRecordオブジェクトの型変換時のquoted_idサポート ActiveSupportの以下を削除 halt_callback_chains_on_return_false コールバック用文字列フィルタの:ifと:unlessオプション 改良: ActionDispatch::SystemTestCaseにフックを追加 PR: #31003 Add load hook for ActionDispatch::SystemTestCase y-yagiさんです。 # actionpack/lib/action_dispatch/system_test_case.rb + + ActiveSupport.run_load_hooks(:action_dispatch_system_test_case, self) #redirect_backにallow_other_hostを追加 PR: #30850 Add allow_other_host option to redirect_back method # actionpack/lib/action_controller/metal/redirecting.rb – def redirect_back(fallback_location:, **args) – if referer = request.headers[“Referer”] – redirect_to referer, **args else – redirect_to fallback_location, **args – end + def redirect_back(fallback_location:, allow_other_host: true, **args) + referer = request.headers[“Referer”] + redirect_to_referer = referer && (allow_other_host … Continue reading 週刊Railsウォッチ(20171110)dry-rbでFormObjectを作る、RailsのSQLインジェクション手法サイト、年に1度だけ起きるバグほか