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来完成所有操作会更直接。
- 在调用Rake任务时设置多个环境变量
- 如何让黄瓜和数据库清理器将我的种子数据留在我的rails测试数据库中?
- 如何计算方法中的方法
- 在ruby on rails上显示表单提交时没有页面刷新的结果数据
- 如何使用Jekyll和Markdown自动转义HTML内容?
- 有’variable_get’方法吗? 如果没有,我该如何创建自己的?
- PostsController中的NoMethodError #create undefined方法`latitude =’“将lat和long保存到连接的表!!”
- Capybara-webkit引发了Capybara :: Driver :: Webkit :: WebkitInvalidResponseError
- 在ruby中使用`除非’的`next`时执行顺序混淆