簡體   English   中英

從按鈕調用方法並將參數傳遞給Ruby rail

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM