options_from_collection_for_select中的唯一值

时间:2014-07-28 23:00:40

标签: ruby-on-rails ruby ruby-on-rails-3

我如何才能在 options_from_collection_for_select()帮助中仅打印唯一值? 因为我不希望有10倍相同的价值......

 <%= select_tag :type, options_from_collection_for_select(
 Course.where(category_id: @category.id), 
 :learning_type, 
 :learning_type, 
 @type)
 %>

1 个答案:

答案 0 :(得分:0)

我不确定你在这里要做什么。假设您有课程模型,并且您想要显示课程的uniq learning_type 。您可以将结果作为数组获得,例如:

Course.where(category_id: @category.id).pluck(:learning_type).uniq

Course.where(category_id: @category.id).pluck('DISTINCT learning_type')

使用Fat模型并在课程模型思想中使用范围总是更好。

现在,您可以轻松地将该数组与该表单助手一起使用,例如:

<%= select_tag :type, options_for_select(Course.where(category_id: @category.id).pluck('DISTINCT learning_type')) %>