Aşağıdaki wiki sayfasındaki cevabın bir kısmını buldum: https://github.com/plataformatec/devise/wiki/How-To:-Make-Devise-work-with-other-formats -like-mobil, -iphone-ve-ipad- (Raylar özgü )
Yani - özet olarak (soruda açıklandığı gibi mim tipinin kaydedilmesinin yanı sıra):
Config/initializers/devise.rb dosyasında config.navigational_formats satırını kaldırın ve şununla değiştirin:
config.navigational_formats = [:"*/*", "*/*", :html, :test]
Başlatıcılara bir dosya ekleyin ve buna aşağıdakileri ekleyin:
ActionController::Responder.class_eval do
alias :to_test :to_html
end
Ayrıca bir düzenleme yöntemini geçersiz kılmam gerekiyordu, çünkü mim türüm aslında html'ye de yanıt veriyor - ama aynı zamanda test için de yanıt verip vermediğini görmek istiyorum. Yeniden başlatıcılar klasöründe, aşağıdakileri içeren bir dosya ekleyin:
module Devise
module Controllers
# Helpers used in both FailureApp and Devise controllers.
module SharedHelpers
protected
# Helper used by FailureApp and Devise controllers to retrieve proper formats.
def request_format
@request_format ||= if request.format.test?
:test
elsif request.format.respond_to?(:ref)
request.format.ref
elsif MIME_REFERENCES
request.format
elsif request.format # Rails < 3.0.4
request.format.to_sym
end
end
end
end
end
Yukarıdaki yöntemi geçersiz kılmak yerine, Sertifika 'daki bir yöntemi geçersiz kılmak için yetkisiz URL'ye yeniden yönlendirmek daha temiz olabilirdi, ancak tam olarak anlayamadım. Ayrıca Devise (upstream) yöntemlerinin yöntemleri geçersiz kılmak için daha iyi bir yer olup olmadığını da belirsiz.