配置Active Admin has_many的标签

Mat*_*ers 10 ruby formbuilder formtastic ruby-on-rails-3 activeadmin

好吧,我有一个与on-to-many assoc相关的两个模型.

#models/outline.rb
    class Outline < ActiveRecord::Base
      has_many :documents
    end

#models/document.rb
    class Document < ActiveRecord::Base
      belongs_to :outline
    end

#admin/outlines.rb
    ActiveAdmin.register Outline do
      form do |f|
        f.inputs "Details" do
          f.input :name, :required => true
          f.input :pages, :required => true
          ...
          f.buttons
        end
        f.inputs "Document Versions" do 
          f.has_many :documents, :name => "Document Versions"  do |d|
            d.input :file, :as => :file
            d.buttons do
              d.commit_button :title => "Add new Document Version"
            end
          end
        end
      end
    end
Run Code Online (Sandbox Code Playgroud)

正如您在admin/outlines.rb中看到的那样,我已经尝试在has_many:documents中设置:name,在commit_button中设置:title,但这两个选项都不起作用,我也试过:legend,: title,和:label,而不是:.has_many中的名称.不工作.

这是该代码的结果: 截图

我要显示的是"文档版本"而不是"文档","添加新文档版本"而不是"添加新文档"

如果有人能有解决方案,那就太好了

tim*_*sly 14

要设置has_many标题,您可以使用

f.has_many :images, heading: 'My images' do |i|
  i.input :src, label: false
end
Run Code Online (Sandbox Code Playgroud)

看到这里


Reg*_*ieB 6

查看ActiveAdmin测试("应该在标头中翻译关联名称"),可能还有另一种方法.使用您的翻译文件.

如果你看一下ActiveAdmin has_many方法(yuck !!! 46行顺序代码),它会使用ActiveModel的人工方法.

尝试将此添加到您的翻译文件中

en:
  activerecord:
    models:
      document:
        one: Document Version
        other: Document Versions
Run Code Online (Sandbox Code Playgroud)