Collection_select 助手无法在 rails erb 的 ruby 中构建禁用的 html 标签
Collection_select helper cannot build disabled html tag in ruby on rails erb
Ruby 在 rails 文档上说您可以添加 html 选项来标记助手。下面的代码不起作用。我的 select 框无法显示为已禁用。有没有人知道为什么?
<%= 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
Ruby 在 rails 文档上说您可以添加 html 选项来标记助手。下面的代码不起作用。我的 select 框无法显示为已禁用。有没有人知道为什么?
<%= 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