gpt4 book ai didi

ruby-on-rails - Rails Geocoder - 仍在学习

转载 作者:行者123 更新时间:2023-12-04 20:19:59 25 4
gpt4 key购买 nike

我确定这是一个简单的问题,因为我没有完全理解 Rails 中的位是如何组合在一起的......

我关注了 rails cast但是我在将它实现到我的应用程序中时遇到了麻烦(我已经让它独立工作了)。

我得到的错误是

undefined method `nearbys'



这是我所拥有的:
用户名
  geocoded_by :full_address   
after_validation :geocode

def full_address
[address1, address2, address3, city, country, postcode].compact.join(', ')
end

用户 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
<h3>Nearby locations</h3>
<ul>
<% for user in @users.nearbys(10) %>
<li><%= link_to user.address1, user %> (<%= user.distance.round(2) %> miles)</li>
<% end %>
</ul>

_sidebar.html.erb
            <%= form_tag users_path, :method => :get do %>
<p>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search Near", :name => nil %>
</p>
<% end %>

谢谢

如果我注释掉 .nearbys
<% for user in @users#.nearbys(10) %>
<li><%= link_to user.latitude, user %> (<%= user.distance.round(2) %> miles)</li>
<% end %>

搜索有效。这可能是安装地理编码器的问题吗?

最佳答案

函数nearbys是模型上的函数,而不是模型集合上的函数。变量 @users包含 User 的集合楷模。您需要在单个模型实例上调用该函数,例如为 @users 中的每个用户调用该函数。 .

举个例子,但不确定你是否真的想要这个:

<% @users.each do |user| %>
<% user.nearbys(10).each do |near_user| %>
<li><%= link_to near_user.latitude, near_user %> (<%= near_user.distance.round(2) %> miles)</li>
<% end %>
<% end %>

(请注意,我还将 for user in @users 更改为使用 @users.each do |user| ,这更像是“ ruby ”。)

关于ruby-on-rails - Rails Geocoder - 仍在学习,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7620235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com