Rails,将整数转换为数组偏移量

时间:2015-08-26 18:44:49

标签: ruby-on-rails arrays ruby multidimensional-array

根据反馈,我正在修改这个问题。如何使用常量(在模型中定义)将整数数组转换为视图页面上显示的一组值。我可以在我的表格页面上进行,但还没有想到索引。

在索引页面上(如果dbase具有等级:[0,1,2],页面应显示为A +,A,B)

类似于一周中几天所做的事情(例如http://hightechsorcery.com/2010/02/16/ruby-arrays-and-hashes-and-days-of-the-week/

....
<h4 class="h3"><%= @gradestemp %>

CONTROLLER 标签控制器

  def index
    @labels = current_user.labels
    grad = []
    @gradestemp = Contact::GRADES.each_with_index { |x, i| grad << [x, i] }
    render
  end

模型注意:GRADES是常量 - 我也试图在标签中使用      class Label&lt;的ActiveRecord :: Base的     注意:这是在CONTACT模型中

  GRADES  = [["A+",0 ], ["A",1], ["B", 2], [ "C",3], [ "D",4], [ "-",5]]

我可以在标签控制器中访问Contact GRADES吗?

我找到了这个 - 这与我想要做的类似: Ruby: How to store and display a day of the week?

根据以下建议,这就是诀窍:

<h4 class="h3"><%= print_campaign.grades.compact.map{|idx| Contact::GRADES[idx][0]}.join(' ')  %>

1 个答案:

答案 0 :(得分:1)

[0, 1, 2].map {|g| Contact::GRADES.select.map {|letter, val| val == g; letter}

实际上,GRADES似乎比Hash更好:

GRADES = { "A+" => 0, "A" => 1, .. }

然后你查找会更简单

[0, 1, 2].map {|g| Contact::GRADES.key(g) }