2009-12-17 31 views
1

我试图找出一个用户ID号码,从一个ActiveRecord表抢学生排,但由于某些原因,“后”块不会找到我的:ID。范围在Ruby中/西纳特拉

对于'get',网址是localhost:9456/update/17。这是17我需要传递到'后'块更新数据库。

我不知道如何做到这一点。解析URL?这似乎是我失去了一些明显的东西。

# update user page 
get '/update/:id' do 
    @student = Student.find(params[:id]) #this returns ID=17 
    erb :update 
end 

#update user submit 
post '/update' do 
    @student = Student.find(params[:id]) #this line doesn't work 
    @student.name = (params[:name]) 
    @student.email = (params[:email]) 
    @student.save 
    redirect '/' 
end 

谢谢!

+0

您是否发送了param:id的值?就像一个隐藏字段名称=“ID”,因为您的文章/更新路由没有:ID附加到路径。 – nowk 2009-12-17 21:58:49

+0

完成了它......谢谢! – gleddy 2009-12-17 22:35:52

回答

5

你实际上传递id回来?您是否通过POST提交表格?如果是这样,所有你需要做的就是添加一个输入,其name属性是id

<form action='/student/update' method='post'> 
    <input type='hidden' name='id' value='17' /> 
</form> 
+0

谢谢你。现在工作正常。甚至没有想到隐藏的领域 – gleddy 2009-12-17 22:36:29