Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 表单_不接受设计循环中的html?(设计轨道宝石)_Ruby On Rails_Devise - Fatal编程技术网

Ruby on rails 表单_不接受设计循环中的html?(设计轨道宝石)

Ruby on rails 表单_不接受设计循环中的html?(设计轨道宝石),ruby-on-rails,devise,Ruby On Rails,Devise,我正在尝试使用Desive接受从多个视图到数据库的表单,我基本上将Desive分为3个视图,1个使用下面代码的第1段非常有效,并接受html。但是,在我的其他视图上使用HTML会导致我的应用程序中断为“2个参数,预期为0”或“第一个参数不能为零”。我有点迷茫,因为我知道Desive正在从数据库中读取数据,因为它在没有HTML的情况下工作得很好。有什么想法吗 代码在第一个视图上工作,但在所有其他视图上不工作(除非删除html)- 删除html时的代码(当前用户)允许我在多个页面上使用该代码,因

我正在尝试使用Desive接受从多个视图到数据库的表单,我基本上将Desive分为3个视图,1个使用下面代码的第1段非常有效,并接受html。但是,在我的其他视图上使用HTML会导致我的应用程序中断为“2个参数,预期为0”或“第一个参数不能为零”。我有点迷茫,因为我知道Desive正在从数据库中读取数据,因为它在没有HTML的情况下工作得很好。有什么想法吗

代码在第一个视图上工作,但在所有其他视图上不工作(除非删除html)-


删除html时的代码(当前用户)允许我在多个页面上使用该代码,因此这是必需的。我想让代码看起来像上面的一样

<%= form_for current_user, { url: registration_path(resource_name), method: :patch } do |f| %>
<% end %>

资源
资源名称
均由设备控制器定义,在设备视图之外无法访问。但是,如果用户未登录,则代替
资源的
当前用户
也将不起作用,因为它是零

如果存在
当前用户
,则以下操作应有效:

<%= form_for(current_user, as: :user, url: registration_path(:user), html: { method: :put, class: "form floating-label" }) do |f| %>
<% end %>


只要在您的路由中定义了用户的
design\u

当您的问题变得难以回答时,阅读此线程寻求帮助的任何人,designe中的自定义表单仅在设置路由并且您继承了designe控制器的情况下才起作用。默认情况下,Desive不显示控制器,但您可以生成一个控制器来简单地继承到它,并添加所需的更改,然后告诉您的路由转到该控制器。完成所有这些操作后,您可以根据需要在整个视图中使用以下(或以上)语法的形式_。获得相同的错误“形式中的第一个参数不能包含nil或为空”,我的路由已使用designe_正确设置:users,controllers:{registrations:'users/registrations'}as:user do get'users/changepassword'=>'设计/注册#changepassword'当前用户始终由设计定义方式定义,是的,但不总是非
nil
。否则就不可能得到那个错误。似乎当前没有用户登录,因此当前用户的值为nil。
<%= form_for(current_user, as: :user, url: registration_path(:user), html: { method: :put, class: "form floating-label" }) do |f| %>
<% end %>