2012-02-19 70 views
4

我有以下的在我的模型:軌人文化選擇的輔助

PRODUCTSTATES = %w[published coming_soon in_development cancelled] 

我使用來填充表單中的下拉,我試圖用humanize做出的排行榜看漂亮,但似乎無法得到它。

<%= f.select :status, Product::PRODUCTSTATES %> 

Product::PRODUCTSTATES.humanize顯然不起作用,也沒有轉換爲字符串之前。

回答

9

你可以通過像

[['caption1', 'value1'], ['caption2', 'value2']] 

數組select幫手,它會產生不便像

<select> 
    <option value="value1">caption1</option> 
    <option value="value2">caption2</option> 
</select> 

在你的情況,你可以做這樣的:

<%= f.select :status, Product::PRODUCTSTATES.map { |s| [s.humanize, s] } %> 

您將獲得頁面上顯示的狀態的人性化版本,並且原始(非人性化)版本將會顯示在提交表單時發送到服務器。

有關更多信息,請參閱selectoptions_for_select文檔。

+0

謝謝,<%= f.input:status,collection:Product :: PRODUCTSTATES.map {| s | [s.humanize,s]}%> for simple_form_for萬一如果sbdy'll需要它 – 2012-12-21 06:53:44