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

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

Тот, который я получал в последнее время, был:

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

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

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

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

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


person Joseph Weissman    schedule 13.06.2009    source источник


Ответы (2)


В 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).

person Dan Rosenstark    schedule 17.02.2010

После того, как я откопал этот билет на Маяк, я бы не слишком беспокоился; пока что.

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

person mwilliams    schedule 13.06.2009