我在simple_form select
字段中收集了不同的类,我需要能够识别集合中的哪个类。目前我已经得到了这个:
<%= f.input :image,
label: 'Image',
collection: share_document.document.images,
label_method: :name, value_method: :id,
prompt: 'Default image based on content' %>
而且share_document.document.images
是这样的:
# document.rb
...
def images
images = []
images << cover if cover
publications.each { |p| images << p.component }
images << photo if photo
images
end
但当然covers
,components
和photos
都可以拥有相同的ID。我想将simple_form的value_method:
更改为"#{class}_#{id}".to_sym
或类似内容,以便表单生效。
关于如何实现这一目标的任何想法?感谢。
答案 0 :(得分:1)
看起来value_method
接受lamba&#39; s这样的事情可以起作用:
value_method: ->(image) { "#{image.id}-#{image.class}" }
更好的方法是使用自定义连接在所有类上定义image_key方法,然后执行:
value_method: :image_key