2012-04-24 67 views
1

我正嘗試在RailsAdmin中爲我的模型之一創建自定義嵌套窗體,以添加比內置窗口小部件允許的更多功能。在RailsAdmin中創建自定義嵌套窗體

我有一個項目has_many TechSpecs。在我rails_admin.rb初始化我有以下

config.model Project do 
    edit do 
    configure :tech_specs do 
     partial 'tech_specs_field' 
    end 
    end 
end 

在_tech_specs_field.html.haml(我個人更舒適ERB但我得到很奇怪的「沒有一種方法safe_concat爲無:NilClass」錯誤,除非我用HAML)我有

= form.fields_for(field.name) do |nested_form| 
    = render :partial => 'spec', :locals => {:nested_form => nested_form} 

- add = "<i class='icon-plus icon-white'></i> New Tech Spec".html_safe 
= form.link_to_add add, field.name, { :class => 'btn btn-info' } 

實際上,我可以看到在底部隱藏的div在頁面上生成的新tech_specs的藍圖,但點擊新技術規格按鈕,什麼也不做。裏面的_spec.html.haml只是一堆text_fields和hidden_​​fields加上刪除鏈接(它工作)。

我想知道兩件事情:

1)我怎樣才能追查又該JS來發生的事情,解決它還是我的部分從bbenezech-nested_form寶石RailsAdmin嵌套形式的工作(這RailsAdmin取決於)

2)關於爲什麼我的部分必須在haml以外的任何想法,而不是RailsAdmin使用的,並且它在生成管理表單的大規模鏈中不兼容?

+0

更多信息:我發現RailsAdmin插入另一個JS文件ra.nested-form-hooks.coffee,它有一個文檔就緒方法,它看起來像覆蓋了nestFormEvents.insertFields方法。我不像JS那麼流利,但是這看起來像RailsAdmin如何使它成爲標籤has_many部件。 – Aaron 2012-04-24 14:27:58

+0

這不是一個永久的解決方案,但是如果我註釋掉ra.nested-form-hooks.coffee的內容,我可以使用依賴gem自定義嵌套窗體而不會出現問題。它仍然必須在哈姆然。 – Aaron 2012-04-24 17:08:45

+0

這是RailsAdmin目前的一個未解決的問題。我會更新它,因爲我瞭解更多。 https://github.com/sferik/rails_admin/issues/1094 – Aaron 2012-04-30 21:54:40

回答

2

這不是一個好的最終的答案,但我是能夠得到解決的問題,在ui.js

var oldNestedFormEvents = window.nestedFormEvents.insertFields 
    window.nestedFormEvents.insertFields = function (content, assoc, link) { 
    if ($(link).closest('.no_tabs').length > 0) { 
     return $(content).insertBefore(link); 
    } else { 
     return oldNestedFormEvents(content, assoc, link); 
    } 
    } 

定製的諧音,我想使用嵌套表格下面JS砍,我只需將'no_tabs'類添加到其包含的div中,並重新使用bbenezech-nested_forms中的原始insertFields方法。