我正在使用以下gem:https://github.com/apneadiving/Google-Maps-for-Rails 我试图在我的控制器中创建@users,只显示参数" status"等于"活跃"
def index
@users = User.all
@hash = Gmaps4rails.build_markers(@users) do |user, marker|
marker.lat user.latitude
marker.lng user.longitude
marker.title user.title
user_link = view_context.link_to user.title, user_path(user)
marker.infowindow "<h4><u>#{user_link}</u></h4><i>#{user.address}</i>"
end
end
在views / users / index.html.erb中,我有一个js函数。
handler = Gmaps.build('Google');
handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){
markers = handler.addMarkers(<%=raw @hash.to_json %>);
handler.bounds.extendWith(markers);
handler.fitMapToBounds();
});
并在index.json.jbuilder中我有:
json.array!(@users) do |user|
json.extract! user, :id, :latitude, :longitude, :address, :status, :title
json.url user_url(user, format: :json)
end
我在我的控制器中尝试了一些匹配功能,但我不确定IF逻辑的放置位置,即。它最适合放在index.json.jbuilder,index.hmtl.erb或控制器中吗?
答案 0 :(得分:1)
可能是模特中最好的。
class User < ActiveRecord::Base
def self.active
where(status: true)
end
end
然后在您的控制器中
@users = User.active