我想知道如何在html.erb中嵌入Rails代码,这样我只需按一下按钮就可以运行Ruby函数。我已经google了,如果这是不可能的,我怎么能运行一个更新Ruby on Rails数据库中的变量的JavaScript函数?
答案 0 :(得分:12)
我认为我们需要谈谈网络的运作方式。别担心;当他们第一次开始构建网络应用程序时,很多人都会感到困惑。
这里有两种类型的代码。第一种类型是服务器端代码,它在您的服务器上运行。在这种情况下,它是Ruby代码,用户无法看到它。此服务器端代码生成第二种类型的代码客户端代码。在这种情况下,它是Javascript代码,因为这是浏览器所理解的。用户可以看到它甚至修改它,并在用户的计算机上运行。
由于数据库存在于您的服务器上,并且无法公开访问(毕竟,这不是很糟糕吗?),您必须使用服务器端代码与数据库。在用户浏览器上运行的代码无法直接与数据库交互,因此您必须在此处使用一种“粘合”技术。
这样做的一种方法是AJAX请求。这是当您的Javascript代码告诉浏览器向您的服务器发送消息并等待响应时。这可能发生在按钮点击上。然后,服务器可以像往常一样处理请求,与数据库交互,无论如何,并将结果发送回浏览器。然而,对于用户而言,他们所看到的只是点击按钮会采取他们期望的行动,这就是最重要的。
在Rails应用程序中实现AJAX有几种方法。 Rails有一些内置方法可供查看,例如Rails 2中的button_to_remote
或Rails 3中button_to
选项的:remote
,可以帮助简化流程。或者,您可以自己编写AJAX代码,甚至谷歌搜索“AJAX教程”也是一个很好的起点。不过,我会从Rails帮助开始,因为它们通常会让初学者变得非常简单。
答案 1 :(得分:1)
您可以使用JS AJAX请求来请求后端ERB文件,然后该文件访问数据库。