在模型方法中定义变量

时间:2013-04-20 08:46:46

标签: ruby-on-rails

我从html表单获取keywords数组,其中包含不同的关键字。我需要将它们放在字符串中,其值为keyword1,keyword2,keyword3

问题在于keywords_line字符串。我发现它在.each循环中有价值,但它没有超出它。如何设置keywords_line才能正常工作?

  # models/item.rb
  before_save :create_slug_and_keywords

  def create_slug_and_keywords

    if defined? self.keywords
      self.keywords.each do |k|
        if defined? keywords_line
          keywords_line = keywords_line + ',' + k
        else 
          keywords_line = k
        end 
      end

      if defined? keywords_line # keywords_line is not defined here
        keywords = keywords_line
      else 
        keywords = nil
      end
    end

1 个答案:

答案 0 :(得分:0)

如果关键字是数组,那么self.keywords.join(',')

指向文档的链接。

http://ruby-doc.org/core-1.8.7/Array.html#method-i-join