我正在尝试使用Ruby on Rails构建一个向用户提出问题的网站(比如第1页)。在用户提交问题的答案后,他转到第2页。我想记录他的回复,检查我的数据库是否正确,我想提供反馈,并在同一页面上提出下一个问题(第2页)。
我想在概念上理解我该怎么做才能做到。我什么时候使用HTTP GET和POST?
答案 0 :(得分:1)
数据持久性
我想记录他的回复,请查看我的数据库 正确性,我想提供反馈,并提出下一个 问题在同一页面上(第2页)
这可能会使用session based model
来实现 - 其中问题响应是按顺序创建的:
#app/models/form_response.rb
class FormResponse
def initialize(session)
@session = session
@session[:form_response] ||= []
end
def process_response(response)
#response here
end
...
end
这将允许您存储响应,并随时间进行评估。这里有一个很棒的Railscast:
就POST
/ GET
请求而言,我很想使用POST
,因为这将使您的应用程序保持模块化(参数不存储在URL等中)
这样做的方法如下:
#config/routes.rb
resources :controller do
collection do
post :page1
post :page2
post :summary
end
end
#app/controllers/your_controller.rb
Class YourController < ApplicationController
def page1
@form = FormResponse.new(session)
render :page2
end
end
-
<强>的Ajax 强>
您可能还想将ajax
用于此
Ajax能够通过JS向您的应用程序发送异步请求。实际上,Ajax实际上代表Aysnchronous Javascript and XML
,这意味着您需要能够使用它向控制器发送隐藏请求,并根据需要处理响应
您最多可以将此用于UX(用户能够保持在同一页面上编辑其响应的能力)。如果你想要我可以详细介绍一下
答案 1 :(得分:0)
这听起来更像是一个关于HTTP的一般问题,而不是Ruby on Rails,所以我会这样接近它。在高级别,HTTP交换将看起来像这样:
我建议您阅读有关HTTP协议的更多信息(例如Wikipedia)