gpt4 book ai didi

ruby-on-rails - 使用 onclick 选项在 View 中调用 Controller 方法

转载 作者:太空宇宙 更新时间:2023-11-03 18:19:02 25 4
gpt4 key购买 nike

您好,我有以下问题。我想调用一个 Controller 方法,它通过按钮或链接的 onklick 选项执行一些 sql 语句。

所以我在我的 Controller 中得到了一个“发布”方法。它看起来像这样:

def publish
do execute sql statements
flash[:notice] = 'sql statements executed.'
end

在我看来,我希望有一个按钮或链接来像这样调用此方法:

<input type="button" onclick="<% controller.publish %>">

但是我得到了错误:

undefined local variable or method

我还尝试将其路由为使用此方法作为 :action。那也不起作用。我现在搜索了一段时间,通过将此方法设为 helper_method 找到了一些解决方案,尽管我再次遇到相同的错误。我是 Ruby 和 Rails 的新手,所以我希望你能帮助我。

最佳答案

如果在您看来,您尝试类似 <% controller.publish %> 的操作,这将调用 publish 在呈现 View 时执行操作,而不是在用户单击按钮时执行操作。

你可以这样做:

  1. 创建一个将调用 publish 的路由当被要求时。例如,假设路线是 /publish .

  2. 在你看来,放这样的东西:

<input type="button" onclick="window.location = '/publish'">

onclick 的值属性必须是有效的 JavaScript,将在单击按钮时执行。在 JS 中,设置 window.location使浏览器导航到不同的页面。在本例中,我们让浏览器导航到 /publish。 ,这将导致您的 publish要调用的 Action 。无论你在 publish 中渲染什么然后将出现在浏览器中。

publish 的代码中你上面显示的,你的 Ruby 语法是错误的,但我假设它只是一个示例,而不是你正在使用的实际代码。

关于ruby-on-rails - 使用 onclick 选项在 View 中调用 Controller 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21407069/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com