小编sov*_*ndy的帖子

RoR之间的区别:url,:action,:form_for中的方法

文档中可能有答案,但我似乎没有找到好的答案.所以在三个:url,:action,:方法中,在Rails中的form_for中使用它们时有什么不同?

ruby-on-rails form-for ruby-on-rails-3

19
推荐指数
2
解决办法
3万
查看次数

如何在Wordpress REST API中检索类别/标记列表

有谁知道如何在Wordpress JSON Rest API中获取类别列表?看来当前的API不支持检索类别列表(虽然XML-RPC确实如此).

http://developer.wordpress.com/docs/api/

wordpress

5
推荐指数
2
解决办法
8680
查看次数

以与访问对象属性相同的方式访问哈希属性

我说有一个红宝石哈希

h={name: "john", age: "23"}
Run Code Online (Sandbox Code Playgroud)

它不是一个对象,只是一个从对象创建的哈希.我想在访问对象时使用method属性访问其值.即:

h.name => "john"
h.age  => 23
Run Code Online (Sandbox Code Playgroud)

是否有可能做到这一点?

ruby hash

4
推荐指数
1
解决办法
2924
查看次数

在rails环境中,分组由sql count语句的多列组成

我有两个关系(班级)

class RecommendedForType < ActiveRecord::Base
   attr_accessible :description, :name
   has_many :recommended_for_type_restaurants
end
Run Code Online (Sandbox Code Playgroud)

class RecommendedForTypeRestaurant < ActiveRecord::Base
   attr_accessible :recommended_for_type_id, :restaurant_id, :user_id
   belongs_to :restaurant
   belongs_to :user
   belongs_to :recommended_for_type

   def self.get_count(rest_id)
     r = RecommendedForTypeRestaurant.where(restaurant_id: rest_id)
     @result =  r.includes(:recommended_for_type)
            .select("recommended_for_type_id, recommended_for_types.name")
            .group ("recommended_tor_type_id, recommended_for_types.name")
            .count
   end

end
Run Code Online (Sandbox Code Playgroud)

如果我打电话

 RecommendedForTypeRestaurant.get_count(1) # get stat of restaurant_id: 1
Run Code Online (Sandbox Code Playgroud)

我明白了

 {"dinner"=>1, "fast food"=>1, "lunch"=>3, "romantic dinner"=>1}
Run Code Online (Sandbox Code Playgroud)

我的目标是让双方idnameRecommendTypeFor在返回结果也是如此.目前我只能让它返回idname.像这样的东西

 {{"id" => 1, "name" => "dinner", "count" => 1}, {"id" =>2, …
Run Code Online (Sandbox Code Playgroud)

sql ruby-on-rails

2
推荐指数
1
解决办法
2586
查看次数

RAILS中的POSTGIS查询优化

我正在使用postgis2.0和postgres 9.1 db.我的目标是尽可能接近优化查询,以获得特定半径范围内的附近位置,并将它们与距离顺序放在一起.Location模型具有latlong空间类型postgis扩展的属性和distance_from计算距离给定POINT(长lat)的距离的方法.我在rails代码中写了如下查询:

def self.nearby(lat, long, radius)
    nearby = Location.where("ST_DWithin(ST_GeomFromEWKB(latlong), ST_GeomFromText('POINT(#{long} #{lat})', 4326),?, false )", radius)
    .order("ST_Distance_Sphere(ST_GeomFromEWKB(latlong) , ST_GeomFromText('POINT(#{long} #{lat})', 4326) ) ")
    .map{|ar| 
      { "id" => ar.id,
        "distance" => ar.distance_from(lat, long)
      } 
    }
end
Run Code Online (Sandbox Code Playgroud)

我可以看到我distance用order子句和map子句双重计算两次,但是想不出我应该如何存储sql查询的距离的立即值.所以在map{}我重新计算它.

 `.order("ST_Distance_Sphere(ST_GeomFromEWKB(latlong) , ST_GeomFromText('POINT(#{long} #{lat})', 4326) ) ")`
Run Code Online (Sandbox Code Playgroud)

"distance" => ar.distance_from(lat, long)

如果我没有错,在我的情况下使用ST_DWithin可以帮助我快速得到一个位置是否在内而不是先计算距离.因此,如果说一个查询只返回10-100个位置,ST_DWithin将比纯粹使用STDistance有助于加快查询速度.

我还能提高多少?我的位置数据库大小约为10000条记录.感谢您的时间,谢谢.

sql postgis ruby-on-rails postgresql-9.1

1
推荐指数
1
解决办法
1276
查看次数