在处理您不熟悉的任何框架时,我发现尝试理解并清理任何无关的警告是合情合理的,只要这样做,以便您更有可能在发生时发现真正的错误
我最近得到的那个是:
DEPRECATION WARNING: @model will not longer be implicitly assigned to model
在我目前的代码库中似乎没有破坏任何东西,但我担心的是因为我完全不理解这个警告。我认为通常最好不要在你的部分中使用@model。
尽管如此,每当此特定“模型”出现在其部分中时,此警告就会被调用。
我应该如何明确指定它?我在一个控制器中创建了@model,然后用一个集合调用partial(理解为'railsy'方法。)
任何人都可以向我解释这里发生了什么,以及在这种情况下最佳做法是什么?我还没有惊慌失措,但是几英里的警告往往会淹没我应用程序的实际输出。
答案 0 :(得分:3)
在挖出这张灯塔票之后,我不会太在意;爱好。
Inappropriate "@variable will no longer be implicitly assigned to variable" message
答案 1 :(得分:1)
在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中)。