1. ホーム
  2. ruby-on-rails

[解決済み] Rails 5.1では":nothing "オプションは廃止されました。

2022-08-22 07:34:55

質問

このコードはrails 5で

class PagesController < ApplicationController
  def action
    render nothing: true
  end
end

の結果は、以下の非推奨の警告となります。

DEPRECATION WARNING: :nothing` option is deprecated and will be removed in Rails 5.1. Use `head` method to respond with empty response body.

どうすれば直るのでしょうか?

どのように解決するのですか?

によると によると、railsのソースは によると、これは nothing: true を渡すとき、rails 5ではフード内で行われます。

if options.delete(:nothing)
  ActiveSupport::Deprecation.warn("`:nothing` option is deprecated and will be removed in Rails 5.1. Use `head` method to respond with empty response body.")
  options[:body] = nil
end

を置き換えるだけで nothing: truebody: nil であれば、問題は解決するはずです。

class PagesController < ApplicationController
  def action
    render body: nil
  end
end

を使うこともできます。 head :ok

class PagesController < ApplicationController
  def action
    head :ok
  end
end