嗯,也许以前有人问过这个问题,但我找不到我的问题的正确答案...... 我有一个表格,其中包含使用 each/do 收费的数据,表格中的每个项目都有一个按钮,可以将该项目添加到另一个表格中,该表格应该在同一页面中看到,但在第一个表格上方。 当我单击按钮时,它会执行操作,但问题是重新加载页面。 我该怎么做才能在不重新加载页面并实时进行此更改的情况下执行此操作???
最佳答案
您必须为此使用 Ajax。由于您没有提供任何代码,我将给您伪代码来描述这个想法。
在 Controller 中创建一个 Action 来描述您的行为。这个 Action 必须响应JS。
def do_something
do_stuff
respond_to do |format|
format.html { #handle HTML, i.e. full page reload }
format.js # handle ajax request
end
end
然后您需要创建一个 js 模板来呈现您的操作结果。您将呈现 JavaScript。因此,创建一个名为 do_something.js.erb
的模板。该模板将包含用于实现您描述的行为的 JavaScript 代码以及任何 Ruby 代码。
不要忘记为您的操作创建路线。此外,根据您希望如何实现该方法,您需要将远程选项传递给您的表单或链接。如果您使用的是链接,则还需要传入 method
选项。
例如:
= form_for @object, remote: true
或者
= link_to "Do Something", do_something_path, remote: true, method: :patch # or post, or put
关于javascript - rails : How to execute function using a button without reload pages,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23050929/