Ruby on rails 通过命名路由将get参数传递给控制器模型;把钥匙串起来!

Ruby on rails 通过命名路由将get参数传递给控制器模型;把钥匙串起来!,ruby-on-rails,Ruby On Rails,嘿,我只是在学习RubyonRails,我已经被这个问题困扰了一段时间了 以下是我的url请求: http://192.168.2.20:8080/Location/new/123.123,-123.123/ 这是我的路线。rb: map.connect '/Location/new/:coords/', :controller => 'Location', :action => 'new', :coords => /\d+.\d+,-\d+.\d+/ map.c

嘿,我只是在学习RubyonRails,我已经被这个问题困扰了一段时间了

以下是我的url请求:

  http://192.168.2.20:8080/Location/new/123.123,-123.123/
这是我的路线。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'
这是我的位置_controller.rb

  def new
    @coords = Location.new(params[:coords])
  end
下面是它给我的错误消息:

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

Location.new需要一个散列作为其参数,在Location_controller.rb中,您应该使用:

def new
  @location = Location.new( { :coords => params[:coords] } )
end
假设coords是要使用的字段的名称。然后在视图或后续代码中,可以使用
@location.coords
获取值