2014-11-14 1 views
1

나는 다음과 같은 보석을 사용하고 있습니다 : https://github.com/apneadiving/Google-Maps-for-Rails 를 내가보기/사용자/인덱스에서 동일 "활성"레일에있는 매개 변수 값 중 하나를 기반으로 사용자 목록을 필터링합니까?

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 

매개 변수 만 표시 사용자에게 내 컨트롤러 내부 @users을 만들기 위해 "상태"를 시도하고있다. html.erb, js 함수가 있습니다.

json.array!(@users) do |user| 
    json.extract! user, :id, :latitude, :longitude, :address, :status, :title 
    json.url user_url(user, format: :json) 
end 

내가 내 컨트롤러에 몇 일치하는 기능을 시도했다, 그러나 나는 즉, IF 논리를 어디에 넣을 것인가 확실하지 오전 :

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에 내가있다. index.json.jbuilder, index.hmtl.erb 또는 컨트롤러에 가장 적합합니까?

+0

사이드 노트에, 나는 컨트롤러를 정리 및 테스트 등을 지원하기위한 Gmaps4rails을 가져옵니다. 어쩌면 MapBuilder라는 서비스 객체가 사용자와 마커를 가져옵니다. – Austio

답변

1

아마 모델에서 가장 좋습니다.

class User < ActiveRecord::Base 

    def self.active 
    where(status: true) 
    end 

end 

그런 다음 컨트롤러

@users = User.active 
+0

나는 여전히 User.all에 전화해야합니까? – djoq

+0

아니요, 필요하지 않습니다. – Anand

+0

위의 응답을 편집 할 수 없습니다 (IMO, 말도 안되는) 규칙 때문에 편집은 6 자 미만이 될 수 없습니다.) 그러나 OP 질문에 일치시키기 위해'@user'는'@ 사용자 '여야합니다 – Anand

관련 문제