【问题标题】:Should I freak out about Rails deprecation warnings?我应该对 Rails 弃用警告感到害怕吗?
【发布时间】:2009-06-13 16:35:28
【问题描述】:

在处理您不是 100% 熟悉的任何框架时,我发现尝试理解和清理任何无关的警告是明智的,只要这样您就有更好的机会在真正的错误发生时注意到它们.

我最近收到的是:

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

它似乎没有破坏我当前代码库中的任何内容,但我担心只是因为我不完全理解警告。我认为通常最好不要在您的部分中使用@model。

尽管如此,每次这个特定的“模型”出现在它的部分时,都会调用这个警告。

我应该如何明确分配它?我在控制器中创建了@model,然后使用集合调用部分(理解为“railsy”方法。)

谁能向我解释这里发生了什么,以及在这种情况下有哪些最佳做法?我还没有吓坏,但数英里的警告往往会淹没我的应用程序的实际输出。

【问题讨论】:

    标签: ruby-on-rails model warnings partial deprecated


    【解决方案1】:

    挖完这张灯塔票,我就不会太在意了;还没有。

    Inappropriate "@variable will no longer be implicitly assigned to variable" message

    【讨论】:

      【解决方案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 中)。

      【讨论】:

        猜你喜欢
        • 2019-01-10
        • 1970-01-01
        • 2014-03-16
        • 2019-07-26
        • 1970-01-01
        • 2011-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多