模块数组输出

时间:2011-09-21 18:57:41

标签: ruby-on-rails module

我正在编写一个模块来为FlagShihTzu gem添加功能。

基本上,它会遍历标志并输出分配给对象的键。它工作正常,但我也希望能够在视图中使用块来处理输出。

问题在于它输出了模块中的数组和视图中块的输出。

module AwesomeFlags

  def my_flags(column = nil)
    a = self.flag_mapping
    if column.nil?
      c = a.values.map {|var| var.keys}.flatten
    else
      b = a[column]
      c = Array.[](b.keys).flatten
    end
    c.map {|var| self.send(var) ? "#{var.to_s} " : nil}.compact!
  end

end

在视图中:

= book_offer.my_flags.each do |flag|
  = flag.titleize

我得到的是:

Regular Complimentary regular complimentary

1 个答案:

答案 0 :(得分:0)

您应将其切换为:

- book_offer.my_flags.each do |flag|
  = flag.titleize

=表示包含方法调用的输出,其中-表示只是执行它。 each循环返回列表中的项目。