Rails Geocoder – 仍在学习
我确定这是一个简单的问题,因为我没有完全理解Rails中的位是如何组合在一起的……
我已经跟踪了导轨,但是我在将它应用到我的应用程序中时遇到了麻烦(我让它独立工作)。
我得到的错误是
未定义的方法`nearbys’
这就是我所拥有的:user.rb
geocoded_by :full_address after_validation :geocode def full_address [address1, address2, address3, city, country, postcode].compact.join(', ') end
users_controller.rb
def index @title = "All users" if params[:search].present? @users = User.near(params[:search], 50, :order => :distance) else @users = User.all end end
index.html.erb
Nearby locations
- ( miles)
_sidebar.html.erb
:get do %> nil %>
谢谢
如果我评论出.nearbys
( miles)
搜索工作。 这可能是安装地理编码器的问题吗?
nearbys
函数是模型上的函数,而不是模型集合上的函数。 变量@users
包含一组User
模型。 您需要在单个模型实例上调用该函数,例如,对于@users
每个用户。
举个例子,但不确定你是否真的想要这个:
<% @users.each do |user| %> <% user.nearbys(10).each do |near_user| %> <%= link_to near_user.latitude, near_user %> (<%= near_user.distance.round(2) %> miles) <% end %> <% end %>
(请注意,我还在for user in @users
更改了for user in @users
以使用@users.each do |user|
,这更像是“ Rubyish ”。)