【问题标题】:Rails partial best practiceRails 部分最佳实践
【发布时间】:2011-02-09 01:33:36
【问题描述】:

我有一个 rails 应用程序,它使用 twitter 库来提取推文并使用 jquery 在我的视图中一一显示。我有点不确定将推文从控制器传输到视图的最佳方式是什么。我的两个想法是:

  1. 取回控制器/模型中的 twitter json,使用 jquery 将其传递给视图,然后使用 dom 构建方法构造 html。

  2. 取回控制器/模型中的 twitter json,使用 html 渲染显示推文列表的部分内容,并使用 jquery 传递该 html 部分内容。

其中一种方法比另一种更好吗?有没有更好的方法来做到这一点?

任何帮助都会很棒!

【问题讨论】:

    标签: jquery ruby-on-rails ruby


    【解决方案1】:

    您不必将数据传递给视图,然后再渲染为 JSON。您可以在控制器中执行此操作:

    render :json => tweets
    

    我认为这是官方jQuery Templates plugin 的完美用例。主函数tmpl 有很多很好的使用示例。

    我将尝试从他们的文档中快速总结一个示例。基本上,您将 HTML 模板放入 script 标记中,如下所示:

    <script id="movieTemplate" type="text/x-jquery-tmpl">
        <li><b>${Name}</b> (${ReleaseYear})</li>
    </script>
    

    然后,您获取 JSON 对象中的数据并将其传递给 tmpl 函数,如下所示:

    // movies contains your JSON data
    $("#movieTemplate").tmpl(movies).appendTo("#movieList");
    

    此示例假定您有一个 ID 为 movieList 的 ul 元素,并且它为在 movies 变量中找到的每部电影附加一个 li 元素。

    电影变量看起来像这样:

    var movies = [
        { Name: "The Red Violin", ReleaseYear: "1998" },
        { Name: "Eyes Wide Shut", ReleaseYear: "1999" },
        { Name: "The Inheritance", ReleaseYear: "1976" }
    ];
    

    【讨论】:

      【解决方案2】:

      如果您想直接在页面上构建 html,partials 将使结果可索引。

      javascript + json 的想法应该更容易实现,但不是很多。

      【讨论】:

      • 为什么部分更容易被索引?
      • 我认为他只是说如果它是部分的,那么您可以在页面加载时将其显示在页面上,而无需使用JavaScript。任何时候您必须在页面加载后使用 JavaScript 显示内容时,该内容可能不会被搜索引擎索引(尽管它们一直在变得更智能)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-21
      • 2015-10-20
      • 1970-01-01
      相关资源
      最近更新 更多