【问题标题】:How can I safely share Rails configuration with Ember.js?如何安全地与 Ember.js 共享 Rails 配置?
【发布时间】:2014-08-01 21:48:40
【问题描述】:

我正在构建一个由 rails 支持的 ember.js 应用程序。我的主 application.hbs 文件中有一个“注销”链接,我想让这个链接使用 :delete 方法(我正在使用设计来处理身份验证)。我无法决定的是如何从 rails 路线输出链接。我已经在 javascript 中定义了所有 ember 路由,但是如何将删除 URL 放入车把中?

= link_to 'Logout', app.destroy_user_session_path, method: :delete

我想将一些配置选项(url 等)从 Rails 传递到我的 Ember.Application 实例中:

window.App = Ember.Application.create()

我怎样才能做到这一点?

【问题讨论】:

    标签: javascript ruby-on-rails ruby ember.js devise


    【解决方案1】:

    只要信息在公众手中是安全的,您就可以随时将此类信息作为 JSON 字符串放入元标记中。您也可以只提供一个全局配置对象,该对象可以从您需要的应​​用程序中的任何子范围调用。例如:

    <meta name="rails-config" content="<%= @rails_config %>" />
    

    @rails_config 显然可以从控制器中设置。您可以使用 jQuery 使用 JSON.parse($('meta[name="rails-config"]').attr('content')) 从任何您想要初始化的地方捕获它并将其存储在您的 ember 应用程序中。

    或者,只是一个很好的老式全局变量:

    window.GLOBAL_RAILS_SETTINGS = {
      foo: '<%= Settings.foo %>',
      bar: '<%= Settings.bar %>',
      baz: '<%= @baz %>',
    };
    

    如您所见,我还从 settings.yml(或任何环境)文件中提取了一些内容。

    希望对您有所帮助!您可以将注销 url 存储为字符串,然后在您的车把中使用常规锚标记或 {{link-to}} 助手。似乎不需要为这个用例花哨。

    肯定有其他方法可以做到这一点。我不知道是否真的有“正确”的方法,除了小心不要暴露敏感数据。

    【讨论】:

      猜你喜欢
      • 2015-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多