0

我正在为我的 rails 应用程序配置公寓 gem,以便为用户提供创建子域的功能。我有一个嵌套表单,在尝试访问“accounts/new”时出现以下错误:

no implicit conversion of Symbol into Integer in view forms

帐户/new.html.erb

<div>
   </div>
    <h2>Create an Account</h2>

<%= form_for @account do |f| %>
    <%= f.fields_for :owner do |o| %>
      <%= form_for o, :email do %>
        <%= o.text_field :email, class: 'form-control' %>
      <% end %>
     <%= form_for o, :password do %>
        <%= o.password_field :password, class: 'form-control' %>
      <% end %>
     <%= form_for o, :password_confirmation do %>
        <%= o.password_field :password_confirmation, class: 'form-control' %>
     <% end %>
   <% end %>

    <%= form_for f, :subdomain do %>
      <div class="input-group">
      <%= f.text_field :subdomain, class: 'form-control' %>
        <span class="input-group-addon">.scrumteam.com</span>
      </div>
      <% end %>
     <%= f.submit class: 'btn btn-primary' %>
    <% end %>
  </div>
</div>

account_controller.rb

private 
      def account_params
        params.require(:account).permit(:subdomain, :owner_attributes => [:email, :password, :password_confirmation])
      end
4

2 回答 2

1

您将多个表单相互嵌套,HTML 不支持:
请参阅此问题了解更多详细信息:您可以嵌套 html 表单吗?

这些form_for行看起来特别无效:

<%= form_for o, :field_name do %>

这里,是一个不应该喂给o的特殊对象。试试这个:FormBuilderform_for

<%= f.fields_for :owner do |o| %>
  <%= o.fields_for :email do %>

与 不同的form_for,可以嵌套块。fields_for

于 2017-07-07T23:03:00.293 回答
0

不确定这是否是您的路线问题,但会在 html 中form_for创建一个实际的form标签。您只需要(并且应该拥有)1,fields_for允许您将表单助手切换到不同的对象,但您不需要form_for在其中再次调用。如果您只是想对表单字段进行分组,您可以添加一些 div 和/或标签。

于 2017-07-07T23:01:43.747 回答