передача параметров по названному маршруту и ​​затем в модель контроллера; stringify_keys! - PullRequest
0 голосов
/ 17 июня 2010

Эй, я только изучаю рубин на рельсах, и я уже давно нахожусь в тупике.

Вот мой URL-адрес:

  http://192.168.2.20:8080/Location/new/123.123,-123.123/

Вот мои маршруты.рб:

  map.connect '/Location/new/:coords/', :controller => 'Location', :action => 'new', :coords => /\d+.\d+,-\d+.\d+/
  map.connect '/Location/list/', :controller => 'Location', :action => 'list'
  map.connect '/Location/create/', :controller => 'Location', :action => 'create'

Вот мой location_controller.rb

  def new
    @coords = Location.new(params[:coords])
  end

Вот сообщение об ошибке, которое оно мне дает:

  NoMethodError in LocationController#new
  undefined method `stringify_keys!' for "123.123,-123.123":String

1 Ответ

1 голос
/ 17 июня 2010

Location.new ожидает Hash в качестве аргумента, в location_controller.rb вы должны использовать:

def new
  @location = Location.new( { :coords => params[:coords] } )
end

Предполагая, что координаты - это имя поля, которое вы хотите использовать. Затем, по вашему мнению или последующему коду, вы можете использовать @location.coords для получения значения.

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