我怎么.split这个包含引号的字符串?

时间:2012-05-27 18:32:55

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1 model

http://loopj.com/jquery-tokeninput/

我正在使用的代码来自jquery-tokeninput fork,它允许在框中输入多个NEW标记(不仅仅是已经存在的标记)。它们单击提交时返回的字符串格式为:

16,42,'Subway',37,'McDonald\'s',734.

这些是存在的令牌的ID号,对于那些不存在的令牌,它将它们包装在“引号”中。

我的问题是如何更改new_custom_tokens方法以解释他们是否输入了新的令牌(检查它是否在引号中)。最终它将检查他们的帐户是否足够老以添加新标签,然后我需要运行Tag.new我假设(因此它只在它们完全有效时保存它,包括资源验证)

编辑:我还认为我需要某种不会在引号中分割内容的验证

resource.rb

  def tag_tokens=(tokens)
    self.tokens_list = tokens.split(",")

    if new_custom_tokens?
      custom_token_time_restriction
    else
      self.tag_ids = self.tokens_list
    end
  end


  def new_custom_tokens?
    if self.token_list ... #... not sure
  end


  def add_new_tag_time_restriction
    # TODO: Check if they are anonymous or their account is newer than 7 days
  end

1 个答案:

答案 0 :(得分:1)

如果我理解正确,这应该可以解决问题:

def new_custom_tokens?
  self.tokens_list.each { |token|
    return true if token.include? "'"
  }
  false
end

基本上它循环遍历token_list数组,如果任何标记具有'字符,则返回true。