如何从rails中的给定列表创建选择框?

时间:2013-06-21 07:32:48

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

我从控制器传递一个列表

 @distinct_grade_list = Student.uniq.pluck(:grade)

从模型学生

创建不同的成绩列表

现在在我的视图页面中,如何将其显示为选择框 我正在使用

<%= collection_select(A, @distinct_grade_list, B, C, D) %>

现在我必须保留A,B,C,D

1 个答案:

答案 0 :(得分:2)

collection_select(object, method, collection, value_method, text_method, options = {}, html_options = {}) public

为什么不阅读api document and sample

样本用法:

class Post < ActiveRecord::Base
  belongs_to :author
end
class Author < ActiveRecord::Base
  has_many :posts
  def name_with_initial
    "#{first_name.first}. #{last_name}"
  end
end

collection_select(:post, :author_id, Author.all, :id, :name_with_initial, :prompt => true)

和结果:

<select name="post[author_id]">
  <option value="">Please select</option>
  <option value="1" selected="selected">D. Heinemeier Hansson</option>
  <option value="2">D. Thomas</option>
  <option value="3">M. Clark</option>
</select>

将选择从实例对象上的调用方法返回的值

调用:author_id on:post,@ post是从控制器传递的

:value_method和:text_method参数是要在集合的每个成员上调用的方法。返回值分别用作值属性和每个标记的内容。

:id是value_method :name_with_initial是text_method 集合用于填充“选项”