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