activeadmin rails 4了解如何创建自定义表单

时间:2014-03-31 13:03:42

标签: ruby-on-rails forms activeadmin

我是activeadmin / formtastic的新手,我在理解工作原理方面遇到了一些麻烦。我阅读了有关如何使用formtastic创建表单的文档,但我似乎仍然遇到问题而且我确信我不理解它是如何工作的。

我正在创建一个非常类似于博客应用程序的讨论应用程序,最终结果是我想为管理员创建一个界面,以便在不必进入用户界面的情况下为讨论添加评论。

我的出发点是activeadmin提供的admin部分中的讨论视图。我正在尝试处理添加评论表单。根据说明,我应该可以使用

添加表单
form partial: 'new_admin_comment_form', locals {discussion_comment: DiscussionComment.new}

然后我应该在app / views / admin / discuss文件夹中创建这个部分。我已经这样做了,并输入了一些任意文本,以确保部分渲染,它确实。但是一旦我开始添加代码,我就无法显示该表单。

我正在使用的当前代码是:

<%= semantic_form_for [:admin, discussion_comment] do |f| %>
    <%= f.inputs, :body %>
    <%= f.actions %>
<% end %>

我在文档中找不到一些我无法找到的问题:

  1. 我在哪里创建要在表单中使用的实例变量?我一直在activeadmin文件中设置这些,这让我很烦。
  2. 如何绕过params?我假设我可以正常地执行此操作但是当我尝试使用&lt;%= debug params.inspect%&gt;查看它们时,即使我至少应该拥有父表单中的id,它也是空的。即使使用locals:{id:params [:id]},id在部分中也是空的。
  3. 调试为什么我的表单没有出现的最佳方法是什么?如果情况变得更糟,我能否使用常规ERB?

1 个答案:

答案 0 :(得分:-1)

您可以在没有自定义表单的情况下执行此操作。如果您坚持使用活动的管理员DSL,则可以使用其has_many方法。示例:

http://www.activeadmin.info/docs/5-forms.html

您的讨论模型应如下所示

class Discussion < ActiveRecord::Base

    has_many :discussion_comments
    accepts_nested_attributes_for :discussion_comments, allow_destroy: true
end