我需要一個人的高度下拉,例如5'2,5'3,5'4等,最好是類似於4'0至8'0。有沒有寶石或插件?我似乎無法找到一個。人類身高下降的軌道
3
A
回答
3
大概你會以英寸存儲它,所以你可以生成你的@heights
傳遞給options_from_collection_for_select像:
(56..112).to_a.map { |inch| { id: inch.to_s, name: (inch/12).floor.to_s+'\''+(inch%12).to_s } }
與英寸到字符串轉換分解成一個輔助方法也許。
2
不知道這是最好的方式, 但你可以嘗試這樣的
@heights = (4..7).to_a.collect{|o| 0.upto(11).to_a.collect{|k| ["#{o.to_s+'\'' + k.to_s}",o.to_s + k.to_s]}}.inject([]){|s,v| s | v}
或更好一些事情,
@heights = (4..7).to_a.collect{|o| 0.upto(11).to_a.collect{|k| ["#{o.to_s+'\'' + k.to_s}",o.to_s + k.to_s]}}.flatten(1)
本應給予的結構類似,
[["4'0", "40"], ["4'1", "41"], ["4'2", "42"], ["4'3", "43"], ["4'4", "44"]] # and so on..
現在,要爲選擇選項準備此結構,您可以使用:
@heights.map { |name, id| OpenStruct.new(:value => id, :name => name) }
這將給名稱和值對每個高度元素,可用於製作選項中選擇標籤
您可能需要包括OpenStruct,所以使用
require 'ostruct'
把這在選擇標籤:
<%= select_tag "Height", options_from_collection_for_select(@heights,'value','name'), html_options = { :onChange=> "height_changed();"} %>
0
這是人類高度 https://github.com/AlexanderZaytsev/height
寫一個幫助一個好的寶石
def height
(121..244).to_a.collect{|k| ["#{Height.new(k).to_s(:default, :metric)}","#{Height.new(k).to_s(:default, :imperial)}","#{Height.new(k).feet}"]}
end
輸出
[["1m 21cm", "4 ft 0 in", "4"], ["1m 22cm", "4 ft 0 in", "4"], ["1m 23cm", "4 ft 0 in", "4"], ["1m 24cm", "4 ft 1 in", "4.08"]
使用模板的方法
<%= f.input :how_tall_are_you, label: "How tall are you ? (in feet and Cm)", collection: height.map { |cm, inc, value| ["#{cm} - #{inc}", "#{value}"] } ,prompt: "-Please select one-",input_html: { class: 'form-control input-lg', required: true} %>
0
科林的回答讓我的存在方式的一部分:
<%=
n.select :height,
options_for_select((36..96).to_a.map { |inch|
{
id: inch.to_s,
name: (inch/12).floor.to_s+'\''+(inch%12).to_s+'"'
}
}),
{},
id: 'height'
%>
在視圖中,在下拉菜單中顯示的是這樣的:
呈現這樣的HTML:
<select id="height" name="height_select">
<option value="{:id=>"36", :name=>"3'0\""}">{:id=>"36", :name=>"3'0\""}</option>
<option value="{:id=>"37", :name=>"3'1\""}">{:id=>"37", :name=>"3'1\""}</option>
<option value="{:id=>"38", :name=>"3'2\""}">{:id=>"38", :name=>"3'2\""}</option>
....
爲了讓它僅顯示高度,我添加了一個收集並指定要顯示的內容(名稱)。我還指定了一個默認值(user_height)。
<%=
n.select :height,
options_for_select(
(36..96).to_a.map { |inch|
{
id: inch.to_s,
name: (inch/12).floor.to_s+'\''+(inch%12).to_s+'"'
}
}.collect{ |p|
[p[:name],
p[:id].to_i]
},
user_height),
{},
id: 'height'
%>
HTML渲染:
<select id="height" name="height_select">
<option value="36">3'0"</option>
<option value="37">3'1"</option>
<option value="38">3'2"</option>
...
<option selected="selected" value="69">5'9"</option>
...
</select>
我不知道這是否是最有效的解決方案,但它的工程!
相關問題
- 1. 提高軌道
- 2. 下降軌遷移
- 3. UISlider軌道高度
- 4. 虛擬列下降在軌道上的紅寶石
- 5. 我在單身人士的正確軌道上嗎?
- 6. 如何在軌道形式下降<select>字段?
- 7. 軌道降級到3.2.13版本
- 8. LinkedIn人在軌道上
- 9. 如何在軌道中設置zurb軌道滑塊的高度?
- 10. 問題運行思考獅身人面像與軌道2.3.5
- 11. 思維獅身人面像和軌道問題
- 12. 思維 - 獅身人面像和軌道 - 內容不索引
- 13. 軌道有很多的本身
- 14. Bootstrap。列表+ ScrollSpy。如何降低身高?
- 15. 嵌套下拉框和多選框基於每個下降在軌道?
- 16. 任何人都知道如何重置鋼軌或資產管道的軌道?
- 17. 令人困惑的軌道路線
- 18. 軌道3 Heroku的推高手問題
- 19. 提高我的軌道控制流
- 20. 在軌道上崇高的文本2
- 21. 高效的數據庫查詢軌道
- 22. 如何讓身體跟隨軌道?
- 23. 下降非常惱人的觸發器
- 24. 軌has_scope和獅身人面像搜索
- 25. 使用思維獅身人面像標記軌道中的同義詞
- 26. 如何提高使用獅身人面像搜索引擎與軌道mem_limit增加2.3.8
- 27. 關係類型在軌道
- 28. 類別未定義 - 軌道
- 29. 以km/hr爲單位估算人類的身高增長率?
- 30. 軌道4,5: 「權威人士:: NotAuthorizedError」
謝謝,它的工作。 – johnnewbie 2012-04-30 00:25:19
只是一個微小的修正,你要通過12不是14 – 2012-08-21 06:46:22
@PaulPettengill呃,好點來劃分。我想我一定是一直在思考磅石。編輯。 – Colin 2012-08-23 10:29:50