首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从rails中调用ruby函数--它采用了一个我不想要的视图

从rails中调用ruby函数--它采用了一个我不想要的视图
EN

Stack Overflow用户
提问于 2012-10-29 04:53:41
回答 1查看 728关注 0票数 1

我想创建一个在rails中调用的ruby函数。我关注了this question,但我被重定向到

代码语言:javascript
运行
复制
http://localhost:3000/my_func?arg=arg

我可不想这样。我只想在按钮被单击时执行函数,但仍然在同一页上!

编辑:

我修改了代码,或者更好的是,创建了一个scratch站点来解决这个问题。我只做了:

代码语言:javascript
运行
复制
rails new eraseme
cd eraseme
rails g controller public home

应用程序/控制器/public/home.html.erb

代码语言:javascript
运行
复制
class PublicController < ApplicationController
  def home
  end

  def my_func

  end
end

app/views/public/home.html.erb

代码语言:javascript
运行
复制
<%= button_to "Button", {:action => "my_func", :arg => "arg"} %>

我想要做的是,当我单击按钮时执行my_func。但是当我点击的时候,我会得到

代码语言:javascript
运行
复制
No route matches {:action=>"my_func", :arg=>"arg", :controller=>"public"}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-29 06:11:36

所以,据我所知。我认为你想做一个按钮,它将发送一个AJAX/HTTP请求到控制器,以便调用一个函数,它在完成时不会返回HTML文件。

为了实现这一点,您必须执行以下操作。

1.)设置此调用的HTTP路由,这在config/routes.rb文件中。

代码语言:javascript
运行
复制
match '/public/my_func' => 'public#my_func'

这允许您的应用程序将具有以下URL的任何HTTP请求定向到控制器中调用您的方法。由于:action => "my_func“参数,您的button_to方法将使用该URL发送此调用。

2.)还包括:remote => true,:form => { "data-type“=> "json”}作为button_to方法的更多参数。

这将通过AJAX请求将按钮从传统的HTTP请求转换为HTTP请求。

让我知道这是如何工作的,我认为在这种情况下有使用AJAX的替代方法,如果它是一个非常简单的方法,那么您也许可以将其作为erb包含在视图中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13112929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档