ruby-on-rails - SimpleForm(你能设置默认的 label_method 和 value_method 参数吗?)
问题描述
使用 SimpleForm,我可以为 :label_method 和 :value_method 设置默认值,这样我就不需要为每个输入设置它了吗?
默认情况下,我的意思是为我的所有输入设置 label_method 和 value_method 的地方,所以我不需要为每个输入设置它们。
例子:
而不是这个:
<%= f.association :model_in_question, include_blank: false, label_method: :label_for_form, value_method: :value_for_form %>
我要这个:
<%= f.association :model_in_question, include_blank: false %>
解决方案
我想这就是你要找的:
<%= f.association :owner_type, :include_blank => false, :label_method => lambda { |owner| "#{owner.name} | #{owner.subtype_name}" } %>
相同的逻辑适用于 value_method。所以如果你有一个模型,你可以调用一个方法label_for_form
并value_for_form
返回你需要的值。然后以您的形式:
<%= f.association :model_in_question, include_blank: false, label_method: :label_for_form, value_method: :value_for_form %>
只要您的集合中的对象对这两种方法都有响应,那么您就不需要在表单中手动写出集合。
推荐阅读
- python - ImportError:来自“tensorflow.python.profiler”的“trace”
- android - 我可以创建一个带射频的安卓应用吗(没有互联网)
- r - R中的12个月比较
- reactjs - 当我用于更新记录时,Antd 表单无法正常工作
- reactjs - 根据用户输入创建动态 json
- r - 一段时间后模拟传入数据并保存中间结果
- ruby-on-rails - 在 rails 标签 X 和 Y 轴在图表中。通过 chartkick 和 chart.js 实现
- java - 无法在虚拟机上显示 Activity_Main.xml 的问题
- reactjs - 在 React 中将平面 json 更改为列出 json
- tensorflow - 更改 tensorflow_probability Convolution3DFlipout 层中的默认先验和后验