はじめに 2018/11/06 (火) に Ruby 2.6.0-preview3 がリリースされました。Ruby 2.6.0 で Hash#to_h をブロック付きで呼んだ場合の挙動が新しく追加されていたのでご紹介します。 Hash#to_h について 例として Hash のそれぞれのキーと値に同じ処理を施したい場合、例えば
はじめに jQuery 3 から $.Deferred が Promises/A+ という Promise の標準規格に準拠するようになった。そこで、せっかくなので $.ajax のコールバック処理も then や catch で書いてみることにした。 done, fail, always を使う場合 $.ajax({ type: 'GET', url: '/soul_gems', dataType: 'json' }) .done((data, textStatus, jqXHR) => { console.log('done', jqXHR.status); }) .fail((jqXHR, textStatus, errorThrown) => { console.log('fail', jqXHR.status); }) .always(() => { console.log('a
class Lesson < ApplicationRecord has_many :lesson_schedules, dependent: :destroy accepts_nested_attributes_for :lesson_schedules, reject_if: :all_blank, allow_destroy: true end
▂▅▇█▓▒░('ω')░▒▓█▇▅▂うわあああああああ 原因 jQuery API Documentation を見ると、 It is converted to a query string, if not already a string. It's appended to the url for GET-requests. See processData option to prevent this automatic processing. Object must be Key/Value pairs. If value is an Array, jQuery serializes multiple values with same key based on the value of the traditional setting (described below). と書いてあり
目的 Rails で Active Record が発行する SQL の実行計画を見やすくする。 方法 今回 plans という Web ツールを利用します。 このツールを利用するには EXPLAIN (ANALYZE, COSTS, VERBOSE, BUFFERS, FORMAT JSON) を実行した結果の JSON が必要です。 例として、以下のリレーションが発行する SQL の実行計画を JSON で取得し、前述のツールに適用してみます。なお、通常は ActiveRecord::Relation#explain を使って実行計画を取得できるのですが、今回はいくつかのオプションを指定する必要があるので別の方法を採用します。 Character.joins(:animes).merge(Anime.where("#{Anime.table_name}.title LIKE ?", '
概要 今回は Rails 4.2 から新しく導入された Active Job という仕組みを利用して、メール送信の非同期処理を実現したいと思います。 Active Job とは Rails 4.2 から Active Job が導入されました。 従来 Rails のジョブキュー処理には Resque, Delayed Job, Sidekiq などの Gem が使われてきましたが、Active Job はそれらをカプセル化してより抽象化したものです。 Active Job を利用する場合も依然として上に挙げた Gem のいずれかを導入する必要があるのですが、Active Job が提供する API を利用する場合は、それらはあくまでアダプタとなります。そして、アダプタがどのようなものであるかをほとんど意識することなくジョブキュー処理を利用できるわけです。 導入 今回は Active Job
require 'socket' require 'openssl' def get_certificate(host) certificate = nil TCPSocket.open(host, 443) do |tcp_client| ssl_client = OpenSSL::SSL::SSLSocket.new(tcp_client) ssl_client.hostname = host ssl_client.connect certificate = ssl_client.peer_cert ssl_client.close end certificate end 上記の get_certificate メソッドは、ホスト名を引数に取り、OpenSSL::X509::Certificate オブジェクトを返す。OpenSSL::X509::Certificate は X509
ja: hidamari: explanation: '%{number}号室には%{name}さんが住んでいます。' I18n.t('hidamari.explanation.', { number: 201, name: 'ゆの' }) #=> "201号室にはゆのさんが住んでいます。" これを I18n 無しでも同じようなことができないかなと思いました。 結論 String#% もしくは Kernel.#format (Kernel.#sprintf) を利用すれば I18n.t と同じような使い方が可能です。 ※ String#% は Kernel.#format の糖衣構文です。 '%{number}号室には%{name}さんが住んでいます。' % { number: 201, name: 'ゆの' } #=> "201号室にはゆのさんが住んでいます。" 'SELECT * FR
発端 僕が仕事で Rails アプリケーションを動かす際によくお世話になっている Phusion Passenger (with Nginx) 。 最近、新しい Rails アプリケーションのために Capistrano でのデプロイ設定を行っていた時のこと。 Capistrano (Capistrano::Passenger) が Passenger を再起動する際に実行するコマンドが 見知らぬものに変わっていることに気づきました。 従来 今までは restart.txt という空のテキストファイルを touch して再起動していたのに、 いつの間にか別の方法に変わってる! 経緯 いつから passenger-config restart-app というコマンドが使われるようになったのか。 それを調べるため CHANGELOG の内容を追ってみました。 すると、Release 5.0.0
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く