【问题标题】:Rails accessing a view partial via the browser urlRails 通过浏览器 url 访问部分视图
【发布时间】:2011-01-18 02:09:06
【问题描述】:

我有一些需要加载 rails 部分的 javascript - 我不想在 javascript 文件中重复部分的 HTML。

有没有办法通过浏览器 url 访问这个部分,以便 JS 可以加载它?

部分位置:

shared/_search.html.erb

我想用这样的方式获取视图 html:

example.com/shared/search.html

我可以通过文件系统显式路由或在本地获取它吗?

我不想为了为 JS 渲染这个部分而创建一个控制器。

【问题讨论】:

    标签: javascript ruby-on-rails ruby


    【解决方案1】:

    您不需要创建新的控制器文件。但是您确实需要一个操作来响应来自您的 JS 的传入请求。

    如果您愿意,该操作可以专门呈现部分。您还可以通过让 JS 按名称请求部分作为操作的参数之一来概括操作。

    如果问题是您需要快速处理大量此类调用,并且不需要 ActiveController 机制(您不想为请求创建控制器实例),则可以使用 Rails Metal -- http://railscasts.com/episodes/150-rails-metal

    添加:另一种选择是将模板文件存储在您的服务器上(在公共/资产等中)。那么:

    1. JS 在每次页面加载时检索一次模板
    2. JS 使用参数调用 rails,只检索响应(无标记)
    3. 浏览器本地的 JS 将响应合并到模板中。一步一步地或使用 JS 库,例如 Jaml
    4. 无限重复步骤 2-3

    【讨论】:

      【解决方案2】:

      如上所述,您仍然需要在控制器中创建一个动作。控制器总是需要在 Rails 中映射传入的请求。

      render 方法包含一系列用于呈现内容的选项 - 您可以直接加载文件,甚至生成内联文本以作为操作调用的结果返回。

      【讨论】:

        猜你喜欢
        • 2013-09-28
        • 2012-08-22
        • 2020-04-19
        • 1970-01-01
        • 2011-09-14
        • 1970-01-01
        • 1970-01-01
        • 2014-08-20
        • 1970-01-01
        相关资源
        最近更新 更多