我试图从此表中的说明中有意义:
http://api.rubyonrails.org/classes/actionview/helpers/formoptionshelper.html#method-i-collection_select
我的目标是使选择菜单宽,而不是默认宽度。
我有此表格输入:
<%= f.input :trl, label: false do %>
<%= f.select :trl_id, Trl.all.map { |t| [t.try(:title), t.try(:id)] },
include_blank: false,
prompt: 'Select one',
input_html: { "width: 200px" }
%>
<% end %>
目前,选择下拉下拉的默认宽度HTML超级很小。我正在尝试让Select接受HTML属性的宽度。
我尝试了上述大约50个不同的排列。我找不到有效的方法。
从简单形式的说明中,我指向上面链接中的说明。这些告诉我,输入表单字段的结构应遵循此格式:
collection_select(object, method, collection, value_method, text_method, options = {}, html_options = {})
根据我可以破译的内容,我认为我需要与此示例一样多的逗号分隔字段。所以总共7个。这是一个假设,因为我无法确定您是否只是跳过了我不想使用或做其他事情来表明该特定字段没有条目的方法。遵循该假设,我有:
<%= f.input :trl, label: false do %>
<%= f.collection_select(:trl_id, Trl.all.map { |t| [t.try(:title), t.try(:id)] },
include_blank: false,
prompt: 'Select one',
html_options = { width: 200px })
%>
<% end %>
这给了我一个错误,上面写着:
syntax error, unexpected tIDENTIFIER, expecting '}'
html_options: { width: 200px })
^
我找不到tinentifier是或含义的英语翻译。大多数堆栈溢出问题引用了本术语,通常表明该语法有问题。
我很挣扎,因为我首先无法理解Apidock的说明。一路上我需要添加更多空白字段吗?如果我这样做,我是否只在连续写两个逗号来表示空白字段?
API码头示例中有7个字段。我认为我的尝试是缺少价值方法和文本方法的内容。我不知道如何向铁轨表明我没有任何内容。API码头中的任何例子都没有表示空白字段,因此我认为少于7个字段应该可以接受。
我也不确定在哪里可以搜索Tinentifier的定义。在这个术语中,可能有一个线索,我无法访问,因为我找不到该术语的含义。
任何人可以帮忙吗?
较晚响应,但请参阅:https://api.rubyonrails.org/v7.0.2.3/classes/actionview/helpers/formoptionshelper.html#method-i-collection_select和如何设置Rails中的HTML选项?
?本质上,集合选择定义看起来像
collection_select(object, method, collection, value_method, text_method, options = {}, html_options = {})
正如您在问题中正确提到的那样,因此尝试在HTML_OPTIONS卷曲支架中应用预定义的CSS类。如果您对html_options
之前的options {}
没有任何声明(例如禁用选项),请将其留为空,例如
<%= form.collection_select :driver_id, Driver.order(:full_name), :id, :full_name, {}, {class: "driver_name_css"} %>
我相信您的代码看起来像:
<%= form.collection_select :driver_id, Driver.order(:full_name), :id, :full_name, {}, {style: "width: 200px"} %>
或
<%= form.collection_select :driver_id, Driver.order(:full_name), :id, :full_name, {}, {class: "pre-defined-css-class-with-desired-width"} %>