首页 > 解决方案 > Rails collection_select,使用数据库数据和任意值填充下拉字段

问题描述

这更像是一个好奇的问题。

我正在使用以下表达式

f.collection_select :location_id, current_provider.locations, :id, :to_s, { include_blank: true}, class: 'form-control'

(在slim文件中)从数据库中提取所有位置数据,并填充下拉菜单。

我很好奇的是,是否可以将数据库数据放在下拉菜单的一个部分中,在下拉菜单的另一部分中包含任意默认位置。

期待听到社区的声音。

非常感谢!

标签: ruby-on-railsrubyruby-on-rails-4slim-langform-helpers

解决方案


如果任意默认位置不是存储在数据库的位置表中的东西,那么不,这将不起作用。这是因为location_id它是一个外键列,所以它唯一可以存储的是位置表中的 id。除此之外的任何东西或 NULL 都会导致它抛出错误。

如果位置存储在位置表中,那么您应该检查selecthelper 而不是collection_select. 它使您可以操纵选项。你会做类似的事情

f.select :location_id, options_manipulated_however, { include_blank: true}, class: 'form-control'

推荐阅读