我有一個列表表,列表模型和listing_controller類。我寫了一個需要2個參數的方法:緯度和經度。然後它檢索圍繞該座標約5公里的列表。在listings_controller這是我的方法寫道:Rails:我如何設置不需要:id參數的方法的路由,而是需要2個查詢參數
def around
lat = params[:latitude]
long = params[:longitude]
@surroundings = Listing.where("latitude = ? and longitude = ?", lat, long)
end
我希望做的是有一個網址,其中,當客戶端瀏覽器調用將提供一個緯度和經度作爲我的routes.rb文件設置2個參數。 No:可以提供id參數,因爲客戶端瀏覽器不知道id,並且數據庫中可能沒有任何與座標精確匹配的條目。記住我只想尋找圍繞具體座標的列表。
那麼如何在路由文件中寫入這個?
這裏是我的「耙路線」命令
listings / listings#index
GET /listings(.:format) listings#index
POST /listings(.:format) listings#create
new_listing GET /listings/new(.:format) listings#new
edit_listing GET /listings/:id/edit(.:format) listings#edit
listing GET /listings/:id(.:format) listings#show
PUT /listings/:id(.:format) listings#update
DELETE /listings/:id(.:format) listings#destroy
/:controller(/:action(/:id))(.:format) :controller#:action
的輸出,這是我的routes.rb文件的外觀:
Businesses::Application.routes.draw do
root to: 'listings#index', as: 'listings'
resources :listings
match ':controller(/:action(/:id))(.:format)'
這是我希望的使用從客戶端瀏覽器URL字符串:
http://localhost:3000/listings/around?latitude=XXX&longitude=XXXX
任何幫助,將不勝感激
OK謝謝許多。我現在就給一個鏡頭,看看會發生什麼...... – banditKing 2012-03-18 04:19:22
謝謝,正如你所說的那樣工作! – banditKing 2012-03-18 04:25:15