Ruby on rails 简单表单:不同类的集合

Ruby on rails 简单表单:不同类的集合,ruby-on-rails,ruby,ruby-on-rails-3,simple-form,Ruby On Rails,Ruby,Ruby On Rails 3,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' %> 当然,封面,组件,以及照片都可以有相同

我在一个简单的表单
select
字段中有一个不同类的集合,我需要能够识别集合中的哪个类。现在我有了这个:

<%= f.input :image,
  label: 'Image',
  collection: share_document.document.images,
  label_method: :name, value_method: :id,
  prompt: 'Default image based on content' %>
当然,
封面
组件
,以及
照片
都可以有相同的ID。我想把simple_表单的
值方法:
改成
“{class}{ID}”。改成_sym
或类似的方法,这样表单就可以工作了


关于如何实现这一点有什么想法吗?谢谢。

看起来像是
value\u方法
接受lamba的,所以类似的东西可以工作:

value_method: ->(image) { "#{image.id}-#{image.class}" }
更好的方法是使用自定义连接在所有类上定义image_key方法,只需执行以下操作:

value_method: :image_key

在这种情况下使用to_sym可能会导致内存泄漏。完全是天才。干杯
value_method: :image_key