Rails activeadmin partial form action

I have a custom form for rails activeadmin, but for some reason the form action causes an error:

undefined method `posts_path' for #<#<Class:0x007f63cad3e5c0>:0x007f63bcc4e2e0>

Here is my admin / post.rb

ActiveAdmin.register Post do


  # See permitted parameters documentation:
  # https://github.com/activeadmin/activeadmin/blob/master/docs/2-resource-customization.md#setting-up-strong-parameters
  #
  # permit_params :list, :of, :attributes, :on, :model
  #
  # or
  #
  # permit_params do
  #   permitted = [:permitted, :attributes]
  #   permitted << :other if resource.something?
  #   permitted
  # end

  form :partial => 'form'

end

My partial file _form.html.erb

<%= form_tag(resource, method: "post", multipart: true, class: 'formtastic post') do %>
<fieldset class="inputs">
    <ol>
        <li id="post_title_input" class="string input optional stringish">
            <%= label_tag('post_title', "Title") %>
            <%= text_field(:post, :title) %></li>
        <li id="post_description_input" class="text input optional">
            <%= label_tag('description', "Description") %>
            <%= text_area_tag(:description) %></li>
        <li id="post_file_upload_input" class="text input optional">
            <%= label_tag('file', "Upload Image") %>
            <%= file_field_tag :file %></li>
        <li id="post_file_upload_input" class="text input optional">
            <%= label_tag('file', "Select Theme:") %>
            <%= collection_select(:post, :category_id, Category.all, :id, :title, prompt: true) %></li>
    </ol>
</fieldset>

<fieldset class="actions">
    <ol>
        <li id="post_submit_action" class="action input_action ">
            <%= submit_tag("Create Post") %>
        </li>
        <li class="cancel">
            <a href="/admin/posts">Cancel</a>
        </li>
    </ol>
</fieldset>
<% end %>
+4
source share
2 answers

Well, the form builder is trying to find posts_path, while the messages are under adminscope

Try

= active_admin_form_for [:admin, resource] do |f|

Besides

= semantic_form_for [:admin, resource] do |f|

also works

+1
source

My workaround:

<% url = resource.new_record? ? admin_posts_path : admin_post_path(resource) %>
<%= form_tag url do |f| %>
  <%= text_field(:post, :title) %>
<% end %>
0
source

All Articles