[英]Rails: Wrong number of arguments(given 1, expected 0)
我已經創建了復選框,我希望每當我選中復選框時應該調用一個方法/動作,但它不是在討厭,我猜這個動作仍然沒有受到影響,我收到了錯誤。
Wrong number of arguments (given 1, expected 0).
我做的是! 在show.html.erb中創建了一個復選框
<%= @files.each do |key,value|%>
<%=check_box_tag(:key, key,Repository.process)%>
<%=label_tag(:key)%>
<%end%>
然后創建一個名為Repository controller中的進程的新方法
def process --> error in this line
end
並給出了一條路線
post 'repositories/:id/process', to "repositories#process"
您正在定義的操作方法 controller
與名稱process
,但process
是在軌基地控制器已定義的操作方法。
您可以通過提供適當的參數來覆蓋它,但不能創建具有相同名稱的另一個操作方法。
您可以通過更改此類內容來實現所需的功能。
1-在Repository Controller
更改操作的名稱。 讓它generate
名稱,以便在控制器中添加以下功能。 (請刪除流程)
def generate
// Write your custom code to process the params[:id]
end
2-在routes.rb
文件中添加它
post 'repositories/:id/generate' => "repositories#generate", as: 'generate_repository'
3-替換您的checkbox
代碼
<%=check_box_tag(:key, key,Repository.process)%>
有了這個
<%= check_box_tag(:param_name, param_value, false, data: {remote: true, method: :post, url: generate_repository_path(id_you_want_to_send) }) %>
而已! 當您選中該復選框時,您將在action方法的params哈希中的param_name
中收到param_value
。 您可以使用params[:param_name]
訪問它。
當您將收到任何價值params[:param_name]
這意味着checkbox
正在checked
,如果值是nil
,這意味着checkbox
是unchecked
請將
param_name
,param_value
和id_you_want_to_send
為所需的變量或值。
謝謝!
您的流程方法不接受任何參數,但您正在向其發送復選框數據。
復選框標記的語法如下所示:
check_box_tag(name, value = "1", checked = false, options = {})
你復選框標簽看起來像這樣:
check_box_tag :key, key, Repository.process
你正在傳遞一個參數來檢查你不應該只是你想使用check_box:
check_box(object_name, method, options = {}, checked_value = "1", unchecked_value = "0")
此外,要在單擊復選框時觸發方法調用,您必須添加remote:true選項並通過Ajax發送它。
我建議使用鏈接而不是實際的復選框,因為它更容易和更清潔。 希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.