我的rails应用程序的内容安全策略不允许内联Javascript。这使得很难通过在视图中呈现的内嵌JavaScript将内容传递给rails应用程序。如何在没有内联脚本的rails中将ruby变量传递给javascript
有没有办法将rails变量传递给javascript,而不使用内联Javascript?
我的rails应用程序的内容安全策略不允许内联Javascript。这使得很难通过在视图中呈现的内嵌JavaScript将内容传递给rails应用程序。如何在没有内联脚本的rails中将ruby变量传递给javascript
有没有办法将rails变量传递给javascript,而不使用内联Javascript?
发现数据我最终使用HTML5 Data Attributes
我加入data-*
属性,像这样一个div
:
<%= tag("div", class: 'hidden-user-information', data: {
intercom_app_id: ENV['INTERCOM_APP_ID'],
user_id: current_user.id,
user_name: current_user.profile.name,
user_email: current_user.email,
user_created_at: current_user.created_at.to_i
}) %>
而且使用jQuery,我用这些访问在我的javascript:从形式 $('div.hidden-user-information').data('intercom-app-id');
保持你的JavaScript文件在app /资产/ JavaScript的文件夹
在视图文件,使用隐藏字段中的数据要传递给JavaScript
在你的JavaScript文件通过使用 $("#name_of_hidden_field")
隐藏字段?我不想在我的应用中嵌入表单:/ – amingilani
为什么不呢?它没有做任何事,只是坐在那里。 @amingilani提供了关于相同的解决方案,除了'data'属性。 –
@AlexanderLozada形式意味着输入。恕我直言,数据属性是一个更加优雅的方式来处理它。虽然,规范的方式是将数据放在body标签中,但使用'tag_helper'更具可读性。 – amingilani