【问题标题】:no implicit conversion of Symbol into Integer in view forms在视图表单中没有将 Symbol 隐式转换为 Integer
【发布时间】:2017-07-07 22:53:58
【问题描述】:

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

no implicit conversion of Symbol into Integer in view forms

accounts/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>

accounts_controller.rb

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

【问题讨论】:

    标签: ruby-on-rails ruby nested-forms apartment-gem


    【解决方案1】:

    您正在将多个表单相互嵌套,这在 HTML 中不受支持:
    有关详细信息,请参阅此问题:Can you nest html forms?

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

    <%= form_for o, :field_name do %>
    

    这里,o 是一个特殊的 FormBuilder 对象,不应将其提供给 form_for。试试这个:

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

    form_for 不同,可以嵌套fields_for 块。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2014-03-12
        • 2020-08-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多