Должен ли я волноваться о предупреждениях об устаревании Rails? - PullRequest
4 голосов
/ 13 июня 2009

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

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

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

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

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

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

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

Ответы [ 2 ]

3 голосов
/ 13 июня 2009

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

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

1 голос
/ 17 февраля 2010

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

...