ruby-on-rails - 获取带有空格分隔符的字符串列表的最有效方法

标签 ruby-on-rails ruby

一个项目可以有很多标签。编辑项目时,我想在输入字段中列出所有标签(stackoverflow 样式)。在 Rails 3 中,我有以下代码,我在调用 join(' ') 之前将我所有的名字放入一个数组中,但是有没有更快/更优雅的方法?

@tags = @project.tags

@tags_array = []
@tags.each do |tag|
  @tags_array << tag.name
end

@tags_string = @tags_array.join(' ')

最佳答案

也许你想要的是 Enumerable#collect 方法:

@tags_string = @project.tags.collect(&:name).join(' ')

当您尝试将一个列表转换为另一个大小相等的列表时,Collect 会派上用场,这正是此处的模式。

&:name 部分表示“给定对象上的调用方法名称”,可以拼写为 { |t| t.name } 等效。

Enumerable 库真的很棒,您应该通读一下并熟悉各种方法,因为它可以为您节省大量时间。

关于ruby-on-rails - 获取带有空格分隔符的字符串列表的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5850682/

相关文章:

ruby-on-rails - 关于 Ruby 类的好指南

ruby-on-rails - TheOdin项目 : Installing rails [OS X/gem install rails/SSL Error]

ruby-on-rails - 设计登录失败消息

javascript - vanilla javascript 渲染平面文本 RAILS

ruby - rails4 使用 ruby​​ 1.9.3 调试断点?

ruby - 通过在 Ruby on Rails 5 中配置 HTTP 头来进行静态资源缓存

javascript - 通过表单保存模型后重新渲染 Rails 部分

ruby-on-rails - 如何在Ruby中设置通用错误/异常处理程序回调?

Ruby 1.9 Array.to_s 表现不同?

ruby-on-rails - 什么是 gem 安装 bundler ?