2012-10-02 64 views
2

我已經覆蓋了標準的Rails表單助手把它吐出的表單元素出在我們的(幾乎是基於自舉)格式(http://www.likeawritingdesk.com/posts/very-custom-form-builders-in-rails後)。你如何符合規範一個重寫的Rails 3表單助手?

它工作正常,但很難寫一個規範。我使用的是這樣的規格:

rendered_form = helper.my_custom_form_for(@account, :url => '/accounts') do |f| 
    f.inputs do 
    # This isn't rendered 
    f.text_field 'name', :size => 30 
    # This is rendered 
    f.select 'locale', options_for_select([%w(Australia en-AU), %w(UK en-GB)]) 
    end 
end 

呈現的內容包括選擇標記,但不包含文本字段標記。我懷疑這是因爲現在的ActionView處理塊,附加塊,而不是塊中的每個語句的返回值的返回值的方式。顯然,在一個應用程序中上下文中使用時,輔助方法被傳遞的一些僱員再培訓局在這方面評估。

  1. 我是不是有可能以這種方式測試渲染助手方法,在塊中有多個語句?
  2. 如果我是正確的,那麼做一個規範的最簡單的方法是什麼?與完整應用程序的上下文中幫助者完成相同的事情?製作一個ERB字符串,並以某種方式將其傳遞給助手來呈現?

回答

1

你解決這個問題?我很好奇,如果你只是得到返回的塊中的最後一個聲明。您是否嘗試過更改f.text_field/f.select命令以查看返回的內容?如果是這樣,那麼你只需要添加它們:

rendered_form = helper.my_custom_form_for(@account, :url => '/accounts') do |f| 
    f.inputs do 
    f.text_field('name', :size => 30) + 
    f.select('locale', options_for_select([%w(Australia en-AU), %w(UK en-GB)])) 
    end 
end