您必须为此使用 Ajax。由于您没有提供任何代码,我将给您伪代码来描述这个想法。
在控制器中创建一个描述您的行为的操作。这个动作必须响应 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