2012-08-29 64 views
0

我正在創建自定義SimpleForm輸入。它利用JavaScript模式彈出窗口來選擇值。Rails將部分添加到Simpleform自定義輸入

如果我在表單視圖中包含模態部分,我基本上可以開始工作,但理想情況下我希望將自定義輸入部分推送到模板。

但是,我無法讓它工作。我正在嘗試這個,但它不能正確渲染部分。

class ProductCategoryImageSelectInput < SimpleForm::Inputs::CollectionSelectInput 
    def input 

    html = '' 
    html << '<a href="#myModal" role="button" data-toggle="modal">Launch demo modal</a>' 

    File.open("#{Rails.root}/app/views/product_categories/_browse_modal.html.erb", 'r') do |f| 
    html << f.read 
    end 

    end 
end 

有什麼想法?

編輯

我顯然太新用戶張貼的截圖,但這裏有鏈接,在功能上的差異:

當我在形式嵌入模態代碼,我得到這一點,這是所期望的功能: working

當我嘗試把模態代碼自定義輸入,我得到這個: not working

回答

0

奇怪的是,好像我已經回答了here。 這是否適合你?

ERB.new(f.read).result(binding) 

PS:更新ERB而不是HAML。

+0

對不起,是問這樣的初學者的問題,但我不使用Haml的 - 什麼將是html.erb等效的語法? – Bryce

+0

沒有這樣的事情,初學者的問題。 :P我已經用ERB更新了答案。 –

+0

非常感謝您的幫助!順便說一下,我在一個railscast評論部分看到,你(或者至少有一個具有相同gravatar圖像的人)已經爲靜態內容提供了一個新的gem。我很高興嘗試一下! – Bryce

6

還可以令使用被分配到一個名爲@builder實例變量的SimpleForm::FormBuilder例如自定義輸入部分:

class ProductCategoryImageSelectInput < SimpleForm::Inputs::CollectionSelectInput 
    def input 
    @builder.template.render(partial: 'product_categories/browse_modal', locals: { foo: 'bar'}) 
    end 
end 
相關問題