我有一个集合,想用它生成一个javascript对象
ruby on rails - I have a collection, want to generate a javascript object with it
我有一个集合:
@products = Product.where("product_type = ?", 3)
我现在想创建一个javascript对象,这样我就可以在UI中执行查找,如:
my_products[2342]
,它将返回:
"some_name"
我认为它应该是这样的:
var my_products = {
2342: "some_name",
5321: "there blah"
}
在控制器的动作中生成这个的好方法是什么?
ActiveRecord和Ruby一般有一个方法to_json
,应该帮助你做你正在寻找的。
基本构造你想在Ruby中创建的数组,并调用to_json
来创建一个字符串,该字符串是一个有效的javascript对象。
我建议使用to_json,但如果你想要另一种选择,你可以使用js生成js对象文字表表法。erb模板。
视图/产品/products.js.erb
var products = {
<% @products.each do |product| %>
<%= "#{product.id}: '"#{@product.name}'"," %>
<% end %>
}
然后,使用专用方法或responds_to块设置一个控制器方法。最后,让AJAX调用该方法并执行返回的代码,这将使您能够访问js中定义的product变量。erb模板。
相关文章:
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 对一个对象使用reduce可以返回一个没有't在数组中包含目标字母
- AngularJS&JSON-从Previous&下一个对象
- jQuery$.inArray()总是返回-1和一个对象数组
- javascript处理一个对象数组以获得一个新的对象数组
- javascript函数,它接受两个输入:一个对象和一个键,并返回对象中该键的相应值
- 你能用来自数组的属性名称生成一个对象吗
- 预期响应包含一个对象,但在angular js中得到一个数组错误
- Protractor:element.getText()返回一个对象,而不是String
- 如何使用jQuery添加另一个对象的高度作为边距
- 计算从一个对象到另一个对象的路径并沿其移动
- 如何将一个对象添加到每个对象数组中
- 为了避免创建全局变量,可以将所有变量分配给一个对象吗
- 将javascript对象(属性+值)合并到一个对象中
- 尝试简化检查对象键是否为true并将其推送到另一个对象
- 从 javascript 中的对象方法返回一个对象
- 响应应包含一个对象,但得到的却是GET操作的数组
- js:如何制作一个循环,将20个不同的东西添加到一个对象中
- 用javascript创建另一个对象的实例