【发布时间】:2016-10-15 16:54:43
【问题描述】:
在我的应用中,我创建了以下 模型:
class User
include Dynamoid::Document
# fields
field :user_id, type: Integer
field :name, type: String
field :age, type: Integer
end
然后在我的路线上:
# try search
get '/user/:user_name' do
user = User.where(name: params[:user_name])
if user
json success: true, user: user
else
json success: false, message: 'User does not exist'
end
end
但我得到了这个:2016-06-14 16:43:14 - NoMethodError - undefined method 'match' for nil:NilClass:
我做错了什么?我想使用 ActiveRecords
添加更多细节:
/home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/aws-sdk-core-2.3.7/lib/aws-sdk-core/endpoint_provider.rb :67:in
block in partition_matching_region' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/aws-sdk-core-2.3.7/lib/aws-sdk-core/endpoint_provider.rb:66:ineach' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/aws-sdk-core-2.3.7/lib/aws-sdk-core/endpoint_provider.rb:66:在find' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/aws-sdk-core-2.3.7/lib/aws-sdk-core/endpoint_provider.rb:66:inpartition_matching_region' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/aws-sdk-core-2.3.7/lib/aws-sdk-core/endpoint_provider.rb:55:在get_partition' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/aws-sdk-core-2.3.7/lib/aws-sdk-core/endpoint_provider.rb:26:inendpoint_for' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/aws-sdk-core-2.3.7/lib/aws-sdk-core/endpoint_provider.rb:10:在resolve' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/aws-sdk-core-2.3.7/lib/aws-sdk-core/endpoint_provider.rb:80:inresolve' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/aws-sdk-core-2.3.7/lib/aws-sdk-core/plugins/regional_endpoint.rb: 24:在block in <class:RegionalEndpoint>' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/aws-sdk-core-2.3.7/lib/seahorse/client/configuration.rb:64:incall' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/aws-sdk-core-2.3.7/lib/seahorse/client/configuration.rb:64:in @ 987654329@block in resolve_defaults' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/aws-sdk-core-2.3.7/lib/seahorse/client/configuration.rb:57:in @ 987654330@每个' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/aws-sdk-core-2.3.7/lib/seahorse/client/configuration.rb:198:in @ 987654331@value_at' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/aws-sdk-core-2.3.7/lib/seahorse/client/configuration.rb:183:in @ 987654332@each_key' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/2.1.0/set.rb:263:ineach' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/aws-sdk-core-2.3.7/lib/seahorse/client/configuration.rb:183:inresolve' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/aws-sdk-core-2.3.7/lib/seahorse/client/configuration.rb:171:in @ 987654334@build! /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/aws-sdk-core-2.3.7/lib/seahorse/client/base.rb:68:in @ 987654335@initialize' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/aws-sdk-core-2.3.7/lib/seahorse/client/base.rb:105:in @ 987654336@connect! /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/dynamoid-1.1.0/lib/dynamoid/adapter.rb:31:inadapter' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/dynamoid-1.1.0/lib/dynamoid/adapter.rb:124:inblock in scan' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/dynamoid-1.1.0/lib/dynamoid/adapter.rb:53:inbenchmark' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/dynamoid-1.1.0/lib/dynamoid/adapter.rb:124:inscan' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/dynamoid-1.1.0/lib/dynamoid/criteria/chain.rb:142:inblock in records_via_scan' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/dynamoid-1.1.0/lib/dynamoid/criteria/chain.rb:115:ineach' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/dynamoid-1.1.0/lib/dynamoid/criteria/chain.rb:115:ineach' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/dynamoid-1.1.0/lib/dynamoid/criteria/chain.rb:115:into_a' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/dynamoid-1.1.0/lib/dynamoid/criteria/chain.rb:115:inArray' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/dynamoid-1.1.0/lib/dynamoid/criteria/chain.rb:115:inrecords' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/dynamoid-1.1.0/lib/dynamoid/criteria/chain.rb:95:ineach' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.2.6/lib/active_support/core_ext/object/json.rb:128:into_a' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.2.6/lib/active_support/core_ext/object/json.rb:128:inas_json' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.2.6/lib/active_support/core_ext/object/json.rb:159:in阻止 as_json' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.2.6/lib/active_support/core_ext/object/json.rb:159:ineach' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.2.6/lib/active_support/core_ext/object/json.rb:159:in地图' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.2.6/lib/active_support/core_ext/object/json.rb:159:inas_json' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.2.6/lib/active_support/json/encoding.rb:35:in编码' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.2.6/lib/active_support/json/encoding.rb:22:inencode' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activesupport-4.2.6/lib/active_support/core_ext/object/json.rb:37:into_json_with_active_support_encoder' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/multi_json-1.11.2/lib/multi_json/adapters/json_common.rb:19:indump' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/multi_json-1.11.2/lib/multi_json/adapter.rb:25:indump' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/multi_json-1.11.2/lib/multi_json.rb:136:indump' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sinatra-contrib-1.4.6/lib/sinatra/json.rb:113:inblock in resolve_encoder_action' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sinatra-contrib-1.4.6/lib/sinatra/json.rb:112:ineach' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sinatra-contrib-1.4.6/lib/sinatra/json.rb:112:inresolve_encoder_action' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sinatra-contrib-1.4.6/lib/sinatra/json.rb:98:injson' /home/ll/fx-service/app/routes/users.rb:196:inblock in ' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1610:incall' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1610:inblock 在编译! ' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:974:in[]' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:974:inblock(3级)在路线! /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:993:inroute_eval' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:974:inblock(2级)在路线! /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1014:inblock in process_route' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1012:incatch' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1012:inprocess_route' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:972:inblock 在路由中! ' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:971:ineach' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:971:inroute!' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1084:inblock in dispatch!' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1066:inblock in invoke' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1066:incatch' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1066:ininvoke' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1081:indispatch!' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:906:inblock 在通话中! ' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1066:inblock in invoke' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1066:incatch' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1066:ininvoke' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:906:incall!' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:894:incall' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-cors-0.4.0/lib/rack/cors.rb:80:incall' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-protection-1.5.3/lib/rack/protection/xss_header.rb:18:incall' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in称呼' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:incall' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-protection-1.5.3/lib/rack/protection/path_traversal.rb:16:in称呼' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-protection-1.5.3/lib/rack/protection/json_csrf.rb:18:incall' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in称呼' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:incall' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-protection-1.5.3/lib/rack/protection/frame_options.rb:31:in称呼' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-1.6.4/lib/rack/session/abstract/id.rb:225:incontext' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-1.6.4/lib/rack/session/abstract/id.rb:220:in称呼' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-1.6.4/lib/rack/logger.rb:15:incall' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:211:incall' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-1.6.4/lib/rack/head.rb:13:incall' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-1.6.4/lib/rack/methodoverride.rb:22:incall' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sinatra-1.4.6/lib/sinatra/show_exceptions.rb:21:incall' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:181:incall' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:2021:incall' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-cors-0.4.0/lib/rack/cors.rb:80:incall' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-1.6.4/lib/rack/tempfile_reaper.rb:15:incall' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-1.6.4/lib/rack/lint.rb:49:in_call' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-1.6.4/lib/rack/lint.rb:37:incall' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-1.6.4/lib/rack/showexceptions.rb:24:incall' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-1.6.4/lib/rack/commonlogger.rb:33:incall' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:218:incall' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-1.6.4/lib/rack/chunked.rb:54:incall' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-1.6.4/lib/rack/content_length.rb:15:incall' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/thin-1.6.4/lib/thin/connection.rb:86:inblock in pre_process' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/thin-1.6.4/lib/thin/connection.rb:84:incatch' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/thin-1.6.4/lib/thin/connection.rb:84:inpre_process' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/thin-1.6.4/lib/thin/connection.rb:53:inprocess' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/thin-1.6.4/lib/thin/connection.rb:39:inreceive_data' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/eventmachine-1.0.8/lib/eventmachine.rb:193:inrun_machine' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/eventmachine-1.0.8/lib/eventmachine.rb:193:inrun' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/thin-1.6.4/lib/thin/backends/base.rb:73:instart' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/thin-1.6.4/lib/thin/server.rb:162:instart' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-1.6.4/lib/rack/handler/thin.rb:19:inrun' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-1.6.4/lib/rack/server.rb:286:instart' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-1.6.4/lib/rack/server.rb:147:instart' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rack-1.6.4/bin/rackup:4:in<top (required)>' /home/jcastelli/.rbenv/versions/2.1.2/bin/rackup:23:inload' /home/jcastelli/.rbenv/versions/2.1.2/bin/rackup:23:in<top (required)>' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/ruby-debug-ide-0.6.1.beta2/lib/ruby-debug-ide.rb:88:indebug_load' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/ruby-debug-ide-0.6.1.beta2/lib/ruby-debug-ide.rb:88:在debug_program' /home/jcastelli/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/ruby-debug-ide-0.6.1.beta2/bin/rdebug-ide:130:in' -e:1:inload' -e:1:in'
【问题讨论】:
-
你能显示更多错误跟踪吗?
-
您使用的是 Sinatra 还是 Rails?你的标题说的是一个,但你的代码似乎说的是另一个。
-
你是对的!我正在使用 Sinatra
标签: ruby-on-rails ruby amazon-dynamodb sinatra-activerecord