Стоит ли мне волноваться из-за предупреждений об устаревании Rails?

StackOverflow https://stackoverflow.com/questions/990987

Вопрос

При работе с любой структурой, с которой вы не знакомы на 100%, я считаю целесообразным попытаться понять и очистить любые посторонние предупреждения, хотя бы для того, чтобы у вас было больше шансов заметить реальные ошибки, когда они происходят.

В последнее время я получал следующее:

 DEPRECATION WARNING: @model will not longer be implicitly assigned to model

Кажется, это ничего не нарушает в моей текущей базе кода, но я волнуюсь только потому, что не совсем понимаю предупреждение.Я подумал, что вообще лучше НЕ использовать @model в своих частичных файлах.

Тем не менее, это предупреждение вызывается каждый раз, когда эта конкретная «модель» появляется в ее части.

Как мне его явно назначить?Я создал @model в контроллере, а затем вызываю партиал с коллекцией (понял, что это метод «railsy»).

Может ли кто-нибудь объяснить мне, что здесь происходит, и какие лучшие практики существуют в этой ситуации?Я еще не волнуюсь, но километры предупреждений заглушают реальный результат моего приложения.

Это было полезно?

Решение

В 2.3.5 да, вам следует исправить свой код.Раньше ты мог это сделать

@rocket_launcher = RocketLauncher.find(params[:id])
page.insert_html :bottom, 'ajax_this', :partial => 'rocket_launcher'

и всё было нормально (@rocket_launcher подобрали в партиале).Больше никогда.Теперь ты должен сделать

page.insert_html :bottom, 'ajax_this', :partial => 'rocket_launcher', :locals=>{:rocket_launcher=>@rocket_launcher}

Тем не менее, ваш пример

<%=render :partial => "rocket_launcher", :collection => @rocket_launchers %>

это круто, и предупреждения об устаревании, которые были в 2.2.x, должны быть исправлены сейчас (в 2.3.5).

Другие советы

Откопав этот билет на Маяк, я бы не стал слишком беспокоиться;еще.

Недопустимое сообщение «@variable больше не будет неявно присваиваться переменной».

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top