2012-07-13 67 views
0

我有一个Rails的部分,我想单击部分按钮中的一个Ruby脚本。如何在单击按钮上运行Ruby代码?

我该怎么做?

这是我想要运行的脚本 - 我现在在<%= %>标签中。

<%= require 'nokogiri' 

doc = Nokogiri::HTML(table_string) 

doc.xpath('//table//tr').each do |row| 
    row.xpath('td').each do |cell| 
    print '"', cell.text.gsub("\n", ' ').gsub('"', '\"').gsub(/(\s){2,}/m, '\1'), "\", " 
    end 
    print "\n" 
end 
%> 

我想要一个运行该代码段的按钮,当我单击它时。

+0

如果你想要一个按钮来运行ruby代码(它必须在服务器上完成),这听起来像你想要将该按钮绑定到一个ajax请求,这会导致一个控制器操作,将运行代码,是否正确? – cdesrosiers 2012-07-13 19:47:25

+2

我经常看到类似这样的问题,因此我觉得有必要写一篇博客文章。这有帮助吗? http://dgrmm.wordpress.com/2012/07/13/web-application-101/ – DGM 2012-07-13 22:03:08

+0

这有很大帮助!我17岁,我已经自学了一些关于编程的知识,所以像这样的帖子帮助我学到了很多东西。 – Slicekick 2012-07-14 16:15:48

回答

6
  • 创建一个控制器
  • 创建将包含要运行
  • 设置你的路由

防爆代码的动作:

resources :my_resources do 
    collection do 
     get :your_action 
    end 
end 

而且你的链接应该是这样的:link_to "text", your_action_my_resources_path

+1

所以我必须创建一个控制器?没有办法只从部分运行它? – Slicekick 2012-07-13 19:44:49

+0

好吧,如果你把这段代码放在你的局部区域,它会运行,但是局部渲染时,不会在用户点击按钮时运行。否则,你可以用javascript来做到这一点。 – Robin 2012-07-13 19:46:13

+0

@Slicekick:不,没有。它是M-V-C。控制器决定如何处理任何请求。 :) – 2012-07-13 19:47:00

相关问题