2013-05-21 32 views
0

初學者在這裏的rails問題。我創建了一個Web刮板來填充我的模型的信息,我想用視圖中的按鈕調用此方法。更重要的是,我想將表單的內容作爲參數傳遞給此方法。我有點失去了對如何使用這個形式,但到目前爲止,我有:使用窗體和按鈕調用視圖中的方法

我把方法進入目錄應用程序/傭工/ admin_pages_helper.rb

module AdminPagesHelper 
    def populate(term) 
    . 
    . 
    end 
end 

然後我有一個看法位於app/views/admin_pages/index.html.erb

我不確定如何去使用form_tag/text_field_tag/submit_tag參數;我見過的大多數例子都涉及使用表單進行數據庫查詢。由於

+1

什麼是'term' - 作爲字符串中的一個參數? – PinnyM

+0

是的。謝謝! –

回答

1

使用的最簡單的形式是這樣的 - 首先你需要一個路由表單可以提交到:

# in your routes.rb 
match "/admin_pages/my_action" => "admin_pages#my_action", as: "my_admin_pages_action" 

這將請求路由到「/ admin_pages/my_action」到「我的行動「在您的AdminPagesController行動。它還爲您提供了幾種可用於在視圖和/或控制器中構建此url字符串的幫助器方法。

# in your view 
<%= form_tag my_admin_pages_action_path do |f| %> 
    <%= text_field_tag :term %> 
    <%= submit_tag "Submit" %> 
<% end %> 

當表單提交它將路線AdminPagesController#my_action方法:

class AdminPagesController < ApplicationController 
    def my_action 
    term = params[:term]   # this contains the contents of the text_field 
    something = populate(term) # call your helper method passing in the term 
    end 
end 
+0

我得到一個「無法將Symbol轉換爲整數」的form_for行。有什麼建議麼? –

+0

您確定您在下一行使用了'text_field_tag'而不是'f.text_field'嗎?另外,嘗試像這樣添加一個標籤到提交按鈕:'<%= f.submit「提交」%>' – PinnyM

+0

我正在使用text_field_tag。雙重檢查任何輸入錯誤。 –

相關問題