模块数组输出

发布于 2024-12-06 02:50:46 字数 624 浏览 0 评论 0原文

我正在编写一个模块来向 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

I'm writing a module to add functionality to the FlagShihTzu gem.

Basically it goes through the flags and outputs the keys for the ones assigned to the object. It's working, but I also want to be able to use a block in the view to do things with the output.

The problem is that it's outputting both the array from the module and the output from the block in the view.

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

In the view:

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

What I get is:

Regular Complimentary regular complimentary

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

空宴 2024-12-13 02:50:46

您应该将其更改为:

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

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

You should switch that to be:

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

The = means to include the output of the method call, where - means to simply execute it. The each loop is returning the items in the list.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文