根据rails中的某个参数值过滤用户列表?

时间:2014-11-14 02:14:53

标签: ruby

我正在使用以下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或控制器中吗?

1 个答案:

答案 0 :(得分:1)

可能是模特中最好的。

class User < ActiveRecord::Base

  def self.active
    where(status: true) 
  end

end

然后在您的控制器中

@users = User.active