这是我的网址请求:
http://192.168.2.20:8080/Location/new/123.123,-123.123/
这是我的routes.rb:
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
答案 0 :(得分:1)
Location.new期望Hash作为其参数,在location_controller.rb中你应该使用:
def new
@location = Location.new( { :coords => params[:coords] } )
end
假设coords是您要使用的字段的名称。然后,在您的视图或后续代码中,您可以使用@location.coords
来获取值。