Rails Active Admin:为什么我的自定义表单不呈现任何输入?

时间:2012-09-02 18:50:02

标签: ruby-on-rails-3 activeadmin formtastic

Rails 3.1.1
活跃管理员0.4.4
formtastic 2.1.1

这是我的Agency模型的有效管理控制器。

ActiveAdmin.register Agency do
  form do |f|
    f.input :name
    f.input :contact_email, :label=>"Email invoices to"
    f.input :api_key, :hint=>"Create a key by following <a href=\"#\" target=\"_blank\">these instructions</a>".html_safe
    f.actions
  end
end

表单应该呈现三个输入,然后是提交按钮,但我得到的只是:

no inputs

为了清楚起见,HTML没有显示缺少输入的迹象:

<form accept-charset="UTF-8" action="/admin/agencies" class="formtastic agency" id="agency_new" method="post" novalidate="novalidate" name="agency_new">
  <div style="margin:0;padding:0;display:inline">
    <input name="utf8" type="hidden" value="✓"><input name="authenticity_token" type="hidden" value="...">
  </div>
  <fieldset class="actions">
    <ol>
      <li class="action input_action" id="agency_submit_action">
        <input name="commit" type="submit" value="Create Agency">
      </li>
    </ol>
  </fieldset>
</form>

我也尝试使用具有相同(错误)输出的字段集:

ActiveAdmin.register Agency do
  form do |f|
    f.inputs "New Agency" do 
      f.input :name
      f.input :contact_email, :label=>"Email invoices to"
      f.input :api_key, :hint=>"Create a key by following <a href=\"#\" target=\"_blank\">these instructions</a>".html_safe
    end
    f.actions
  end
end

更新:我发现注释f.actions行会形成实际打印输入的形式,但现在只是没有按钮。

ActiveAdmin.register Agency do
  form do |f|
    f.inputs "New Agecny" do 
      f.input :name
      f.input :contact_email, :label=>"Email invoices to"
      f.input :api_key, :hint=>"Create a key by following <a href=\"#\" target=\"_blank\">these instructions</a>".html_safe
    end

    #f.actions
  end
end

表格有输入但没有按钮:

no button

4 个答案:

答案 0 :(得分:0)

应该使用

f.buttons,而不是f.actions

f.buttons,打印按钮。 f.actions需要一个用于格式化按钮的块,类似于f.inputs

答案 1 :(得分:0)

您正确的进展:将您的输入包装在f.inputs块中。

取消注释块外的“f.actions”行。

你应该被设定。

答案 2 :(得分:0)

尝试使用此功能:f.input:type =&gt; :提交。这对我有用

form do |f| 
  f.input :starts_at
  f.input :ends_at
  f.input :type => :submit
end

答案 3 :(得分:-1)

尝试使用此:f.buttons :submit

我还认为按钮/操作的块在某个版本的活动管理员中有所改变,所以你可能会被旧的教程等绊倒。