form_for不接受设计循环中的html? (设计导轨宝石)

时间:2016-05-24 00:16:23

标签: ruby-on-rails devise

我正在尝试使用devise接受从多个视图到我的数据库的表单,我基本上在3个视图之间进行分割,1个使用下面的第1段代码很好并接受html。但是,在我的其他视图上使用HTML会导致我的应用程序中断“2个参数,预期为0”或“第一个参数不能为零”。我有点失落,因为我知道设计是从数据库读取,因为它工作正常 - 没有HTML。有什么想法吗?

代码适用于第一个视图,但所有其他视图不适用(除非删除html) -

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

删除html时的代码是什么样的(current_user)允许我在多个页面上使用代码,因此是必需的。我希望代码看起来像上面那样。

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

1 个答案:

答案 0 :(得分:1)

resourceresource_name都由设计控制器定义,不能在Devise视图之外访问。但是,如果用户未登录,则current_user代替resource将无效,因为它为零。

如果存在current_user,则以下内容应该有效:

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

只要在您的路线中定义了devise_for :users