Как добавить параметры в запрос Http для вызова метода на контроллере в приложении rails - PullRequest
1 голос
/ 18 марта 2012

У меня есть модель Listing в моем приложении rails. У меня есть таблица со всеми списками и классом перечисления_контроллера. То, что я хочу сделать, это вызвать метод, который я написал в list_controller. Вот этот метод:

class ListingsController < ApplicationController
  def around
      lat = params[:latitude]
      long = params[:longitude]
      @surroundings = Listing.where("latitude = :lat and longitude = :long", :lat lat, :long long)  
  end
end

Вот мой around.html.erb файл

<h1>Surroundings</h1>


<%=@surroundings.inspect%>


<br/>
<%= debug(params) if Rails.env.development? %>
<br/>

Теперь в моей таблице списков есть 2 столбца: широта и долгота обоих типов строк.

Я хотел бы проверить метод "около", который я написал

Вот мой routes.rb файл

Businesses::Application.routes.draw do

  resources :listings
  root to: 'listings#index', as: 'listings'

  match ':controller(/:action(/:id))(.:format)'
end

Теперь я понимаю, что для того, чтобы вызвать метод контроллера, мне нужно создать URL-адрес и добавить метод, который будет вызываться после перечисления, например, так ...

http://localhost:3000/listings/around

но я не понимаю, как я передам 2 параметра (широту и долготу) этому методу ?? Где и как в URL можно их добавить ..

помогите пожалуйста

Ответы [ 2 ]

0 голосов
/ 18 марта 2012

Полагаю, вы говорите о регулярных параметрах http get.Вы можете просто добавить их в свой URL, начиная со стиля ?param1=value1&param2=value2&....

. В вашем примере вы должны написать что-то вроде http://localhost:3000/listings/around?latitude=3.455&longitude=15.2228.

.помощник, синтаксис должен быть примерно таким: listings_around_path(:latitude => "3.455", :longitude => "15.2228").

0 голосов
/ 18 марта 2012

См. Руководства по Ruby on Rails: обзор контроллера действий и прочтите раздел о параметрах.Вы можете предоставить эти параметры через параметры строки запроса URL.Например http://localhost:3000/listings/around?latitude=1&longitude=2.Вы также можете POST эти данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...