gpt4 book ai didi

ruby-on-rails - Rails : Wrong number of arguments(given 1,预期为0)

转载 作者:行者123 更新时间:2023-12-03 11:12:24 26 4
gpt4 key购买 nike

我已经创建了复选框,并且希望每当我选中该复选框时都应该调用一个方法/ Action ,但是它没有被遮挡,我想 Action 仍然保持不变并且出现错误。

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%>

然后在存储库 Controller 中创建一个名为进程的新方法
 def process --> error in this line
end

并给了一条路线
post 'repositories/:id/process', to "repositories#process"

最佳答案

您正在controller中定义名称为process操作方法,但是process是Rails 基本 Controller 中已经定义的操作方法。

您可以通过提供适当的参数来覆盖它,但不能创建具有相同名称的另一个操作方法。

http://apidock.com/rails/AbstractController/Base/process



您可以通过更改此类内容来实现所需的功能。

1-在 Repository Controller中更改操作的名称。让我们将其命名为 generate,以便在您的 Controller 中添加以下功能。 (请删除过程)
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_value中收到 param_name。您可以使用 params[:param_name]访问它。

每当您将在 params[:param_name]中收到任何值时,这意味着如果值是 checkbox,则 checked就是 nil,这意味着 checkboxunchecked

Please change param_name, param_value and id_you_want_to_send with your desired variables or values.



谢谢!

关于ruby-on-rails - Rails : Wrong number of arguments(given 1,预期为0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42548432/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com