0

我在 ruby​​ on rails 中检索数据库记录,如下所示:

@amenities = AmenitiesAndFeatures.where(is_amenities: true).order("name ASC")

在我的 javascript 中,我想查询 @amenities 中的记录。这可能。

var x = 1
var amenity = <%@amenities.select("name").where(id: x)%>

这可能吗?如果没有,有什么方法可以做到这一点?我需要处理从数据库中检索的活动记录。我不想再次重新查询或使用 ajax 来再次提取我的@amenities 中已经存在的数据。谢谢!

4

2 回答 2

1

您可以将需要的数据以json格式一次性放入页面,您可以定义任意数量的变量。

在您的控制器中:

@amenities = AmenitiesAndFeatures.where(is_amenities: true).order("name ASC")

@amenities_json = @amenities.to_json

在您的页面中:

var amenities = <%= @amenities_json.html_safe %>;

$.each(amenities, function(index, amenity){
   alert(amenity.name);
});
于 2013-08-15T09:50:38.773 回答
1

也许您可以发送您的设施以 json 格式查看,并使用 hidden_​​field 来存储您的数据。

#controller
@amenities = AmenitiesAndFeatures.where(is_amenities: true).order("name ASC")
@amenities_json = @amenities.map {|amenity| {id: amenity.id, name: amenity.name} }.to_json

#view
<%= hidden_field_tag "amenities_json", @amenities_json %>

#javascript
var amenities = JSON.parse($("#amenities_json")[0].value);
于 2013-08-15T10:22:18.150 回答