这周我一直在研究这个问题。但它的一个变体,在我的例子中,我希望标签文本被包裹在一个 <span> 中。我以为我正在寻找与 simple_form 有关,但实际上它仍然是 Rails ActionView 标签助手的一部分。
是的,你可以在你的模型上添加另一种方法,但是如果你想保持你的模型干净或者你想使用标签中模型中没有的东西。:label_method 也可以是一个过程。
<% label_method = proc { |p| "#{p.name} #{p.project_number}" } %>
<%= f.input :project_id, collection: PmProject.order('name'), label_method: label_method, value_method :id, label: 'Project', include_blank: false %>
或者在我的情况下
<% label_method = proc { |p| "<span>#{p.name}</span>".html_safe } %>
<%= f.input :project_id, collection: PmProject.order('name'), label_method: label_method, value_method :id, label: 'Project', include_blank: false %>