def admission2
puts params[:id]
@student = Student.find(params[:id])
@guardian = Guardian.new params[:guardian]
if request.post? and @guardian.save
redirect_to :controller => "student", :action => "admission2", :id => @student.id
end
end
在给定的代码中,find方法抛出一个异常,说明
Couldn't find Student without an ID
但puts
语句的输出显示params[:id]
包含值。我确保给定id
字段的记录始终存在于数据库中。
当我手动将一个数字作为find
方法参数时,它有用,所以我猜这里找不到params[:id]
,还有其他办法吗?
我正在使用rails 2.3.5
答案 0 :(得分:0)
这很奇怪。如果你这样做会有什么不同吗
@student = Student.find params[:id].to_i
答案 1 :(得分:0)
这是我的旧routes.rb文件:
map.connect ':controller/:action'
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id/:id2'
map.connect ':controller/:action/:id.:format'
我刚刚从中移除了map.connect ':controller/:action'
,现在一切都在不断发挥作用。