Ruby on Rails文档说您可以添加HTML选项来标记助手。下面的代码不起作用。我的选择框无法显示为已禁用。有谁知道为什么吗?
<%= form.fields_for :journal_doc_analytics do |analytics| %>
<div style="border: 2px solid red">
<div class="field">
<%= analytics.label :select_personel %>
<%= analytics.collection_select :personel_id, Personel.all, :id, :name_with_initial, disabled: true %>
</div>
我也尝试写像
<%= analytics.collection_select :personel_id, Personel.all, :id, :name_with_initial, options = {disabled: true} %>
或者
<%= analytics.collection_select :personel_id, Personel.all, :id, :name_with_initial, html_options={disabled: true} %>
生成的HTML代码不包含禁用的选项。见下文。[1]:https://i.stack.imgur.com/HuIWE.jpg任何想法都会被接受。
TLDR:
像这样调用函数(注意额外的{}
)
<%= analytics.collection_select :personel_id, Personel.all, :id, :name_with_initial, {}, disabled: true %>
解释:
所以这有点棘手。从文档中您可以看到该函数接受以下参数:
collection_select(object, method, collection, value_method, text_method, options = {}, html_options = {})
您正在调用这样的函数:
<%= analytics.collection_select :personel_id, Personel.all, :id, :name_with_initial, html_options={disabled: true} %>
因此,如果您仔细查看这些参数,则html_options
应该是传递的最后一个参数,并且在此之前有options
参数。因此,所有的时间你是路过disabled: true
的options
,而不是html_options
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句