![](/img/trans.png)
[英]Calling and passing parameters from view to controller w/ select box and button
[英]Calling a method from button and passing parameters to in Ruby rail
我是紅寶石的新手,我要在頁面上做的一件事是接受用戶的輸入,然后單擊按鈕以調用處理方法。
控制器看起來像
def index
//code
end
def create
//code
end
def doSomeAction
//This is where I want to process
end
這是視圖
<%= form_tag(project_path, multipart: true, class: 'form-inline', role: 'form') do %>
<%= button_tag 'upload batch file', class: 'btn btn-primary' %>
<%= link_to 'Reports Index', reports_path %>
<% end %>
<%= text_field "item", "ids", "size" => 20 %>
<%= button_to 'Call Action', method: "doActionTest" %>
這是路線
Rails.application.routes.draw do
resources :browse_items, only: [:index, :show]
resources :reports, only: [:index, :show]
resources :project, only: [:index, :create, :show]
root to: "project#index"
end
如何將按鈕映射到doActionTest以及如何將值從文本字段傳遞給該方法?
您需要設置一個指向該控制器內該動作的路由。
在您的config / routes.rb文件中,您應該添加
post 'doSomeAction', to: 'ControllerNameHere#doSomeAction', as: 'do_some_action'
然后在您的form_tag中,您想要將其指向的url從' project_path
'更改為: do_some_action_path
然后將按鈕更改為: <%= button_to 'Call Action', method: :post %>
他們要明確聲明的方法是HTTP請求(例如get,put,post等),而不是控制器中的操作。
附帶說明,如果您要遵循ruby最佳實踐,則操作名稱不應該用do_some_action
而是用下划線分隔,您應該將操作名稱設置為do_some_action
(如果這樣做,請確保相應地更改路線)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.