": Hiçbir şey" seçeneği kullanımdan kaldırılmıştır ve Rails 5.1'de kaldırılacaktır.


108

Bu kod raylarda 5

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

aşağıdaki kullanımdan kaldırma uyarısıyla sonuçlanır

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

Bunu nasıl düzeltirim?


2
Bu neden reddedildi?
Linus Oleander

3
muhtemelen kullanımdan kaldırma uyarısı size tam olarak nasıl düzelteceğinizi söyler.
sevenseacat

24
@sevenseacat Hayır, sadece ifade ediyor head, hepsi bu. Hala kullanılan API'ye bakmanız gerekiyor. Bunun, yukarıdaki kullanımdan kaldırma uyarısını resmi API üzerinden okumak zorunda kalmadan hızlı bir şekilde çözmeyi amaçlayan, Soru-Cevap tarzı bir gönderi olduğunu unutmayın. Gönderi şu anda yukarıdaki uyarıyla ilgili olarak google'da 1. sırayı alıyor, ki bu benim ilk hedefimdi.
Linus Oleander

Yanıtlar:


172

Ray kaynağına göre bu , raylardan geçerken kaputun altından yapılır nothing: true5.

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

Sadece değiştirilmesi nothing: trueile body: nilbu nedenle sorunu çözmek gerekir.

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

alternatif olarak kullanabilirsiniz head :ok

class PagesController < ApplicationController
  def action
    head :ok
  end
end

16
headYöntem tercih edilen sözdizimi. Çok daha temiz.
Dan

3
render body: nilbenim için çalıştı, render head :okyapmadı (bazı çift oluşturma hatası verdi).
Fellow Stranger

13
Durum kodlarını değiştirmek isterseniz, sadece :ok guides.rubyonrails.org/…
TJ Biddle

2
başka bir örnek de head :unauthorized401
Jirapong

14
@FellowStranger, değil render head: :ok, öyle head :ok. Hayır render. Ben de bununla mücadele ettim.
ben
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.