undefined method `has_many' for Formtastic

不羁岁月 提交于 2019-12-04 05:26:07

ActiveAdmin extends formtastic with some useful helpers such as has_many (lib/active_admin/form_builder.rb in the activeadmin gem).

Unfortunately, these helpers are not available by default in your templates.

Here are two options:

  1. If you don't need the extra has_many functionality (it looks like active_admin adds some javascript to make it easy to add a new record to the collection), then you can use stock formtastic. This example should work fine in the activeadmin file as well as in a partial:

    ActiveAdmin.register Ressource do
      form do |f|  
        # ...
        f.inputs :for => :roles do |app_f|
          # ...
          app_f.input :name, :include_blank => false
        end
        f.buttons
      end
    end 
    
  2. Use the ActiveAdmin form builder explicitly:

    <%= semantic_form_for [:admin, @resource], builder: ActiveAdmin::FormBuilder do |f| %>
      <!-- ... -->
    
      <%= f.has_many :teachers do |app_f| %>
        <%= app_f.inputs do %>
          <!-- ... -->
        <% end %>
      <% end %>
    
      <%= f.buttons %>
    <% end %>
    

I hope this helps.

There is a solution

form :html => {:multipart => true} do |f|
end

Or, if you want to use partial:

<%= active_admin_form_for [:admin, @resource] ,:html => {:multipart => true} do |f|%>
<% end %>
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!