2015-02-09 21 views
2

我使用Rails中4 country_select寶石在窗體標籤:使用country_select寶石用的form_tag和沒有模型

<%= form_tag(@url, method: :post, class: "form-horizontal") do %> 
    <div class="form-group"> 
     <%= label_tag(:country_code, "Country code") %> 
     <%= country_select :country_code, @country_code, class: "form-control" %> 
    </div><% end %> 

我收到以下錯誤。

undefined method `NZ' for "NZ":String 

這是一個安靜的不尋常的錯誤,我還沒有發現country_select gem的任何其他實例。 rails應用程序沒有數據庫,並且正在與外部數據庫進行通信,所以此應用程序中沒有模型。我被建議使用Open Struct來解決這個問題。但是,我想知道有沒有人知道更快的修復?表單正在拾取數據庫中的數據!

+0

這似乎是一個寶石的問題 – ppascualv 2015-02-09 12:53:56

回答

0

問題在於我沒有模型。我需要使用幫助我模擬對象的OpenStruct數據結構。你可以閱讀更多關於它here

4

既然你可能已經有你的應用程序中的country_select寶石你也有countries寶石,因爲它是country_select的依賴。所以,你可以只用普通的Rails使用這樣的countries寶石形成傭工select_tagoptions_for_select

select_tag :country, options_for_select(ISO3166::Country.all, params[:country]) 

這比使用OpenStruct這樣做一個更好的選擇。

詳見及其他發現者,你可以用它代替ISO3166::Country.allhttps://github.com/hexorx/countries

+0

就像一個魅力,謝謝! – simonbogarde 2017-05-14 11:48:48