redirect_to出错了

hkcbcj 2009-10-22 04:49:32
我的controller

class QuestrionController < ApplicationController

def show
@id = params[:id]
@questrons = Questron.find(:all, :conditions =>"dep_id ="+@id.to_s)
end

def particular

end


def response

end

def issuance
if params[:id]
@id = params[:id]
end
if request.post?
que = Questron.new(params[:questron])
que.que_time = Time.now
que.dep_id = params[:id]
if que.save
redirect_to :action => "show",:id => @id.to_s
else
redirect_to :controller => "errors", :action => "all"
end
end
end

end

调用issuance方法save后redirect_to出错。
页面的信息是:

You have a nil object when you didn't expect it!
The error occured while evaluating nil.redirect

...全文
161 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyqhbb 2010-05-25
  • 打赏
  • 举报
回复
怎么不用restful标准的。那个简单明了
badboyzl 2010-04-29
  • 打赏
  • 举报
回复
dddddddddddddddddddddddd
lyqhbb 2010-02-04
  • 打赏
  • 举报
回复
@id取到的可能是一个nil,所以要保证@id不为空,而且不是to_s,不加试试,或者用to_i
saint1126 2010-02-04
  • 打赏
  • 举报
回复
把你的url贴出来看看,可用中断调试下,估计是redirect_to :action => "show",:id => @id.to_s 中的@id

if params[:id]
@id = params[:id]
end
获取的适合,为空,所以会出现这个问题。
URI 是这个样子吗?questriones/id/issuance吗?
404 2010-01-27
  • 打赏
  • 举报
回复
要坚持rails风格写代码,要空格!
redirect_to :action => "show",:id => @id.to_s
上面的应该这么写!
redirect_to :action => "show", :id => @id
404 2010-01-27
  • 打赏
  • 举报
回复
que = Questron.new(params[:questron])
question 不是 questron。你模型都写错了,咋去找对应的表!服你了!
潇魂剑侠 2010-01-22
  • 打赏
  • 举报
回复
没有to_s
LaXXX 2010-01-15
  • 打赏
  • 举报
回复
redirect_to :action => "show",:id => @id.to_s

这个位置的to_s有问题。@id应该是一个integer,跳转是会find_by_id, 如果是一个string的id,当然无法查询到,只能返回nil值。
huazi2567 2010-01-15
  • 打赏
  • 举报
回复
不好用啊
xiuce 2009-12-24
  • 打赏
  • 举报
回复

if params[:id]
@id = params[:id]
end

确实@id有可能为空,我觉得应该在
if request.post?
这个地方判断一下
huacnlee 2009-11-23
  • 打赏
  • 举报
回复

if params[:id]
@id = params[:id]
end


你都有这一段判断,那么也就是说 @id 有可能是 nil !
so,当你后面使用 @id.to_s 就会出项 nil 调用错误,把 @id.to_s 的 .to_s 去掉试试,而且这个地方也没有必要写to_s的, Rails 会自动转换的
taito 2009-10-23
  • 打赏
  • 举报
回复
按这样看到是没错。不过错误提示是对象为nil,你检查下log的详细错误提示。如果有IDE的话,最好是进行下断点测试,这样检查容易一些。

2,763

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ruby/Rails
社区管理员
  • Ruby/Rails社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧