Ruby on rails 正在尝试在“我的标记”表中设置哈希标记列表
假设一个用户输入->ruby>rails>flightRuby on rails 正在尝试在“我的标记”表中设置哈希标记列表,ruby-on-rails,ruby,ruby-on-rails-3,hashtag,Ruby On Rails,Ruby,Ruby On Rails 3,Hashtag,假设一个用户输入->ruby>rails>flight 我正在尝试拆分hashtags列表,并将其设置在我的tags表中,前提是该标记尚未在表中 def tag_list=(names) self.tags = names.split("#").map do |n| Tag.where(name: n.strip).first_or_create! end end 问题是它将空值设置为第一个标记。 如何使所有的标签小写,以及如何使其忽略空格,以便“蛋糕”烘焙和“蛋糕
我正在尝试拆分hashtags列表,并将其设置在我的tags表中,前提是该标记尚未在表中
def tag_list=(names)
self.tags = names.split("#").map do |n|
Tag.where(name: n.strip).first_or_create!
end
end
问题是它将空值设置为第一个标记。如何使所有的标签小写,以及如何使其忽略空格,以便“蛋糕”烘焙和“蛋糕”烘焙一样有效。
非常感谢。regexp的强大功能,为您的救援!(提示英雄姿势) 更严重的是:
查找字符串中regexp的所有匹配项,并返回一个数组String#scan
- 在regexp中,我们有:
- 匹配#字符
- 打开一个捕获组(这就是为什么我们有一系列阵列)
- 匹配一个或多个既不是a#也不是空格的字符
- 关闭捕获组
/#(\w+)/
,其中匹配的字符仅为“word”字符
要使所有字符都小写,只需执行以下操作:
"#ruby #rails #flight".scan( /#(\w+)/ ).flatten.map( &:downcase )
regexp的力量,拯救我们!(提示英雄姿势) 更严重的是:
查找字符串中regexp的所有匹配项,并返回一个数组String#scan
- 在regexp中,我们有:
- 匹配#字符
- 打开一个捕获组(这就是为什么我们有一系列阵列)
- 匹配一个或多个既不是a#也不是空格的字符
- 关闭捕获组
/#(\w+)/
,其中匹配的字符仅为“word”字符
要使所有字符都小写,只需执行以下操作:
"#ruby #rails #flight".scan( /#(\w+)/ ).flatten.map( &:downcase )
names.strip.split(“#”).compact.each do|标记|
标签names.strip.split(#“).compact.each do|标签|
该死!我真的需要学习这个正则表达式。谢谢我现在就试试。为了提高精度,输出必须平坦,因为捕获组生成数组。如果你想练习regexp,我建议你亲自动手,而且很明显,你可以阅读.Worked as a dream。谢谢!谢谢你的链接,我需要在regex上升级我的游戏。该死!我真的需要学习这个正则表达式。谢谢我现在就试试。为了提高精度,输出必须平坦,因为捕获组生成数组。如果你想练习regexp,我建议你亲自动手,而且很明显,你可以阅读.Worked as a dream。谢谢!谢谢你的链接,我需要在regex上升级我的游戏。
names.strip.split("#").compact.each do |tag|
tags << Tag.where(name: tag).first_or_create!
end