文档中可能有答案,但我似乎没有找到好的答案.所以在三个:url,:action,:方法中,在Rails中的form_for中使用它们时有什么不同?
有谁知道如何在Wordpress JSON Rest API中获取类别列表?看来当前的API不支持检索类别列表(虽然XML-RPC确实如此).
我说有一个红宝石哈希
h={name: "john", age: "23"}
Run Code Online (Sandbox Code Playgroud)
它不是一个对象,只是一个从对象创建的哈希.我想在访问对象时使用method属性访问其值.即:
h.name => "john"
h.age => 23
Run Code Online (Sandbox Code Playgroud)
是否有可能做到这一点?
我有两个关系(班级)
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)
我的目标是让双方id及name 的RecommendTypeFor在返回结果也是如此.目前我只能让它返回id或name.像这样的东西
{{"id" => 1, "name" => "dinner", "count" => 1}, {"id" =>2, …Run Code Online (Sandbox Code Playgroud) 我正在使用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条记录.感谢您的时间,谢谢.