代码之家  ›  专栏  ›  技术社区  ›  Joseph Weissman

我应该为Rails的拒绝警告而发狂吗?

  •  4
  • Joseph Weissman  · 技术社区  · 15 年前

    在处理您不完全熟悉的任何框架时,我发现最好尝试理解和清除任何无关警告,只要这样,您就有更好的机会在实际错误发生时发现它们。

    我最近得到的是:

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

    它似乎没有破坏我当前代码库中的任何东西,但我担心的只是因为我不完全理解警告。我认为一般情况下最好不要在你的部分使用@model。

    尽管如此,每当这个特定的“模型”出现在其部分中时,就会调用这个警告。

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

    有人能向我解释这里发生了什么,在这种情况下有什么最佳实践吗?我还没有惊慌失措,但是数英里的警告往往会淹没我的应用程序的实际输出。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Dan Rosenstark    14 年前

    在2.3.5中,是的,您应该修复您的代码。你以前能做到的

    @rocket_launcher = RocketLauncher.find(params[:id])
    page.insert_html :bottom, 'ajax_this', :partial => '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)。

        2
  •  3
  •   mwilliams    15 年前

    在挖了这张灯塔的票之后,我不会太担心;但是。

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