Javascript 如何使从DB中提取的Ruby代码在JS中工作?
我正在使用rails代码将一些html和JS代码填充到mysql数据库中。然后从数据库中提取代码,并在可配置页面上呈现。在HAML文件中,当我在JS警报中使用ruby代码时,效果很好: 警报(“#{user.id}”) 显示id是因为我将用户对象传递到此页面。 现在,当我在DB中保存这一行警报(“#{user.id}”)并呈现JS代码时,它将#{user.id}作为字符串发出警报。我如何让它意识到,来自DB的字符串不仅仅是一个字符串,它是一些ruby代码,当我在那里获取用户对象时,需要在页面上对其进行解释。因此,它应该显示实际的id,如5或6,而不是显示一个简单的字符串“#{user.id}”Javascript 如何使从DB中提取的Ruby代码在JS中工作?,javascript,ruby-on-rails,ruby,Javascript,Ruby On Rails,Ruby,我正在使用rails代码将一些html和JS代码填充到mysql数据库中。然后从数据库中提取代码,并在可配置页面上呈现。在HAML文件中,当我在JS警报中使用ruby代码时,效果很好: 警报(“#{user.id}”) 显示id是因为我将用户对象传递到此页面。 现在,当我在DB中保存这一行警报(“#{user.id}”)并呈现JS代码时,它将#{user.id}作为字符串发出警报。我如何让它意识到,来自DB的字符串不仅仅是一个字符串,它是一些ruby代码,当我在那里获取用户对象时,需要在页面上对
Plz帮助要将数据从Rails传递到JS,有几种方法可以做,请参见此处的视频:
要将数据从Rails传递到JS,有几种方法,请参见此处的视频:
就我个人而言,我将数据存储在视图中的一个隐藏字段中,然后使用jQuery处理它
=form_for :user do |f|
=f.hidden_field :id
然后在javascript中
$('document').ready ->
alert $('#user_id').val()
就我个人而言,我将数据存储在视图中的一个隐藏字段中,然后使用jQuery处理它
=form_for :user do |f|
=f.hidden_field :id
然后在javascript中
$('document').ready ->
alert $('#user_id').val()
如果可以更改语法(如
alert(“”
),则可以使用ERB或其他类似的模板引擎
以下是如何与雇员再培训局合作
require 'erb'
user_id = 23
str = 'alert("<%= user_id %>")' # get these from the database
ERB.new(str).result(binding)
需要“erb”
用户id=23
str='alert(“”)#从数据库中获取这些
ERB.new(str.result)(绑定)
请注意,这很危险,因为这意味着用户实际上可以从ERB内部运行代码。
为了解决这个问题,我建议使用另一种模板语言
以下是一些选项:
警报(“”
),则可以使用ERB或其他类似的模板引擎
以下是如何与雇员再培训局合作
require 'erb'
user_id = 23
str = 'alert("<%= user_id %>")' # get these from the database
ERB.new(str).result(binding)
需要“erb”
用户id=23
str='alert(“”)#从数据库中获取这些
ERB.new(str.result)(绑定)
请注意,这很危险,因为这意味着用户实际上可以从ERB内部运行代码。
为了解决这个问题,我建议使用另一种模板语言
以下是一些选项: