我在轨道上的ruby中检索数据库记录,如下所示:
@amenities = AmenitiesAndFeatures.where(is_amenities: true).order("name ASC")
在我的javascript中,我想查询@amenities中的记录。这可能。
var x = 1
var amenity = <%@amenities.select("name").where(id: x)%>
这可能吗?如果没有,有什么方法可以做到这一点?我需要处理从数据库中检索的活动记录。我不想再次重新查询或使用ajax只是为了再次提取已存在于@amenities中的数据。谢谢!
答案 0 :(得分: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);
});
答案 1 :(得分: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);