Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 根据rails中的一个参数值筛选用户列表?_Ruby - Fatal编程技术网

Ruby 根据rails中的一个参数值筛选用户列表?

Ruby 根据rails中的一个参数值筛选用户列表?,ruby,Ruby,我正在使用以下gem: 我试图在控制器内创建@users,以便仅显示参数“status”等于“active”的用户 我在控制器中尝试了一些匹配功能,但我不确定将IF逻辑放在哪里,即,它最适合放在index.json.jbuilder、index.hmtl.erb还是控制器中?可能是模型中最好的 class User < ActiveRecord::Base def self.active where(status: true) end end 请注意,我将拉出Gma

我正在使用以下gem: 我试图在控制器内创建@users,以便仅显示参数“status”等于“active”的用户


我在控制器中尝试了一些匹配功能,但我不确定将IF逻辑放在哪里,即,它最适合放在index.json.jbuilder、index.hmtl.erb还是控制器中?

可能是模型中最好的

class User < ActiveRecord::Base

  def self.active
    where(status: true) 
  end

end

请注意,我将拉出Gmaps4rails以清理控制器并帮助进行测试等。可能服务对象调用了MapBuilder,然后它接收了一个用户和标记。我应该仍然调用user.all吗?我无法编辑上述响应,因为(依我看,这很荒谬)规则规定,一次编辑不能少于6个字符,但是
@user
应该是
@users
以匹配OP的问题我尝试添加模型并将“@users=user.all”替换为“@users=user.active”,但它没有按计划工作。当您进行更改时发生了什么?地图上没有用户,地图显示为0,0。如果我调用@users=User.all,一切都正常,我在地图上看到了所有的用户。在查看用户的show.html.erb时,我还可以看到用户的状态,但我似乎无法使此逻辑在地图上正常工作。
handler = Gmaps.build('Google');
handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){
  markers = handler.addMarkers(<%=raw @hash.to_json %>);
  handler.bounds.extendWith(markers);
  handler.fitMapToBounds();
});
json.array!(@users) do |user|
  json.extract! user, :id, :latitude, :longitude, :address, :status, :title
  json.url user_url(user, format: :json)
end
class User < ActiveRecord::Base

  def self.active
    where(status: true) 
  end

end
@users = User.active