2012-07-13 30 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

相關問題