轨道3 - 帮助返回一个零
问题描述:
你好,我已经在我的创建控制器如下:轨道3 - 帮助返回一个零
def create
@requestable = find_requestable
if [email protected]?
. ..
然后:
def find_requestable
params.each do |name, value|
if name =~ /(.+)_id$/
return $1.classify.constantize.find(value)
end
end
nil
end
这个工程发现当find_requestable发回paratemter,但如果它是不是它不发回一个导致一切错误的NIL:
NameError (uninitialized constant Undefined):
app/controllers/request_threads_controller.rb:133:in `find_requestable'
app/controllers/request_threads_controller.rb:131:in `each'
app/controllers/request_threads_controller.rb:131:in `find_requestable'
app/controllers/request_threads_controller.rb:52:in `create'
app/middleware/flash_session_cookie_middleware.rb:14:in `call'
为什么不find_requestable发回零?谢谢
答
你的find_requestable
方法的第三行,首先检查name
是否为blank
。给那一枪。
if !name.blank? && name =~ /(.+)_id$/
UPDATE:答案在注释:
我能想到的唯一的另一件事是,你则params的一个具有Undefined
为它的价值,这是造成return $1.classify.constantize.find(value)
扔了。你可以看看通过电线发送的HTTP头信息和POST参数吗?
不错的主意,但同样的错误 – AnApprentice 2010-11-13 18:52:31
在你的方法,哪一行是133? – John 2010-11-13 18:54:19
return $ 1.classify.constantize.find(value) – AnApprentice 2010-11-13 18:56:45