【问题标题】:Rails: Rendering Models?Rails:渲染模型?
【发布时间】:2010-11-18 15:24:46
【问题描述】:

我可以想到一百万种不太自动的方法来在 Rails 中渲染模型,但我想知道是否有一些内置的方法可以做到这一点。我希望能够做到这一点

<%=@thing -%>

显然,您可以使用 partials 来做到这一点(我的意思是,调用 render :partial),但我想知道是否有一些标准方法可以将视图与模型关联。

[提前感谢 weppos,修复了这个问题的标签 :)]

【问题讨论】:

    标签: ruby-on-rails rendering


    【解决方案1】:

    您可以覆盖模型中的 to_s 方法以返回您想要的表示,尽管这不一定是可取的,因为您的模型包含正确属于您的视图的表示问题。

    此外,to_s 真正意味着返回一个简短的字符串表示,用于调试等目的。

    【讨论】:

    • 没错。我一直在模型上添加一个 .to_html ,但那是查看代码的完全错误的地方。你提到的。无论如何,谢谢。
    【解决方案2】:

    你不是来自Seaside 是吗? :)(我问是因为这正是那里的工作方式,每个模型/可渲染对象都知道如何渲染自己,这就是您布置页面的方式。)

    关于您的实际问题,执行此操作的标准方法是渲染您将 @thing 提供给的部分内容。 (即,您对部分的钱是正确的,这就是视图通常与模型相关联的方式。)

    【讨论】:

    【解决方案3】:

    如果您将模型直接传递给render,它将尝试为它渲染一个部分。

    <%= render @thing %>
    

    那是一样的。

    <%= render :partial => 'things/thing', :object => @thing %>
    

    如果你传递一个模型数组...

    <%= render @things %>
    

    它会为每个渲染 _thing 部分,就像你这样做一样。

    <%= render :partial => 'things/thing', :collection => @things %>
    

    注意:这需要 Rails 2.3。如果你有早期版本的 Rails,你需要使用 :partial 选项来做同样的事情。

    <%= render :partial => @thing %>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-18
      • 2018-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多