【问题标题】:Is it possible to do AJAX calls in a liquid template?是否可以在液体模板中进行 AJAX 调用?
【发布时间】:2010-03-23 06:39:18
【问题描述】:

我正在研究 Rails 应用程序的液体模板语言:

http://wiki.github.com/tobi/liquid/

我希望我的用户也能够进行 AJAX 调用(就像在 rails 中的周期性调用远程、观察字段等一样)。这可能吗?

假设可以将 rails 助手添加为过滤器,用户将如何修改 AJAX 调用返回的内容?他们不能修改服务器上的 rjs 文件或类似的东西。我想 AJAX 调用可以返回 JSON(而不是呈现的 html),然后 javascript 可以使用它来呈现一些东西。但我很难想象它究竟是如何工作的。

如果有人能指出这个例子或澄清它,将不胜感激。谢谢!

【问题讨论】:

    标签: ruby-on-rails liquid-layout


    【解决方案1】:

    允许任何用户进行任何 ajax 调用真的是你想要的吗?
    不要忘记你不能信任你的用户。您真的希望他们能够请求您域名上的任何页面吗?

    我猜你希望能够只允许他们请求一些页面。已定义的 url 列表。

    然后,您只需为每个网址创建一个过滤器即可返回您的内容。
    因此,如果用户在他的模板中这样做:

    {{ get_users }}
    

    这将在内部执行一个 ajax 调用来检索所有用户的列表。

    当你在做只有开发者才应该做的事情时,你可以认为是通用的。
    但是,当涉及到允许用户更改应用程序的代码时,您应该限制他们,以免他们破解和破坏一切。

    【讨论】:

    • 好点达米安。夫妇的想法。 1.在安全性方面,经过身份验证的 API 调用可以解决安全问题或 2.您建议使用执行 ajax 调用的过滤器。我实际上更喜欢这个 - 但他们将如何以自定义方式呈现返回的数据? get_users 命令能否返回 JSON 并让用户用它做他们想做的事?感谢您的帮助,我可以告诉您在这里获得了一些很棒的经验。
    • 我对液体不是很熟悉。但是如果你的过滤器返回一个 ruby​​ 数组,你可以循环遍历它,然后以你想要的方式显示它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-12
    • 1970-01-01
    • 2011-08-22
    • 2013-08-12
    • 2017-09-16
    • 1970-01-01
    相关资源
    最近更新 更多