2010-12-13 35 views
9

我创建这样的选择框:如何控制Ruby on Rails 3中选择框的大小?

f.select(:my_select_name, options_for_select(...)) 

我怎么能控制选择框的尺寸(宽)?

对于输入文本字段我做的:

f.text_field(:field_name, :size => my_size) 

但对于“选择”这是行不通的。

请指教。

回答

10

基本synatx的选择是

select(object, method, choices, options = {}, html_options = {}) 

选项是通过下拉选项值更换和 可以更换html_options的宽度。

例如。 <% select("company", "branch_id", Branch.all.collect {|b| [ b.name, b.id ] }, { :prompt => "Select" }, {:class => "companySelect" })

对于select_tag可以使用

select_tag(name, option_tags = nil, options = {}) 

这里的选项是类似的选择html_options。

例如。 <%= select_tag 'company_name', options_for_select(get_company_name), :class => "select1"%>

有关详细信息,请参阅select Tagselect

+0

嗨!我在哪里可以看到'html_options'和'options'的所有可用选项? – 2010-12-13 09:06:06

+0

常用的html_options是:多个 - 允许多种选择,:禁用 - 禁用输入,:大小 - 设置大小,:class - 定义类,:onclick - 调用javascript onclick和其他键创建标准HTML属性。 对于您可以选择http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-options_for_select – ssri 2010-12-14 05:26:20

+0

的选项谢谢,但我仍然不明白如何设置选择的大小框。 ':size'对'select'不起作用(仅适用于文本字段)。你能否详细说明一下? – 2010-12-14 13:46:11

14

在要点中,我使用:

<%= f.select(:my_select_name, [1,2,3,4,5], {}, :style => "width:70px") %> 

或者,如果我使用类似Twitter的引导,我使用一个类:

<%= f.select(:my_select_name, [1,2,3,4,5], {}, :class => "col-md-1") %> 
+0

谢谢,所以为我工作。你也可以这样做:<%= f.select(:foo_id,Foo.all.collect {| foo | [foo.name,foo.id,]},{},:style =>“width:250px” )' – ksugiarto 2013-05-07 05:47:28

+0

谢谢它也适用于我。 – 2014-10-29 16:54:07