Ruby on Rails:在同一页面上使用用户输入进行计算

所以,我遇到的问题是我认为是一个非常简单的问题。 我不知道如何访问用户输入…或者我不知道如何在rails中声明临时变量。

无论如何,实现这一目标最直接的方法是什么:

Enter Group Size: Select Study Site:
4 %> Hello! Nope!

我想我需要javascript来实际使它工作,但是现在我只需要知道如何使用这些变量。

任何帮助将不胜感激。 谢谢。

与大多数事情一样,解决方案涉及的内容更多:


阿贾克斯

与本机应用程序不同,Rails依赖于HTTP协议

HTTP适用于请求。 您将请求发送到服务器以呈现网页; 服务器响应请求。 这样做的问题是你不能使用带有“实时”function的Rails而不向服务器发送请求(即使是“实时”应用程序也只是保持永久连接打开,作为单个请求)

这意味着如果您想处理“实时”数据(无需刷新),您将必须使用技术代表您发送请求。 如你所知,这将是ajax :

 $(".element").on("action", function(){ $.ajax({ url: "your/end/point" data: {your: data} success: function(data) { alert(data) } }); }); 

轨道

要在Rails中处理ajax请求,它与处理HTTP请求基本相同:

 #config/routes.rb resources :controller do get :your_endpoint end #app/controllers/controllers_controller.rb def your_endpoint # perform actions here respond_to do |format| format.html format.js { # handles JS / Ajax request } end end 

返回

然后,您可以使用JS(Ajax)函数处理返回的数据。 这使图像“实时”工作,但实际上每次都会从服务器发送和接收请求

要使用ERB动态使用它们,需要将它们包装在表单中并提交给服务器。 然后,您可以使用params[:variable_name]轻松访问它们。 在控制器中准备消息可能会更清晰,但如果您不需要与模型交互,那么使用一些基本的JS来完成所有操作会更直接。