我正在尝试运行一种方法,如果存在(表 Hashtag 列标签)标记,它会将 View 计数更新为 1。否则它将创建一个新行,默认 View 计数为 0 并且标记为 @hashtag scrubbed .
Hashlog.rb
def self.create_hashlog(hashtag) #enters hashtag into the log table, without #.
@hashtag_scrubbed = hashtag
# Hashlog.find_or_create_by_tag(@hashtag_scrubbed)
taglog = Hashlog.find_or_create_by_tag(@hashtag_scrubbed) do |t|
t.count = 0
end
taglog.count += 1
taglog.save!
end
错误
Completed 500 Internal Server Error in 772ms
NoMethodError (undefined method `+' for nil:NilClass):
app/models/hashlog.rb:24:in `create_hashlog'
app/controllers/hashtags_controller.rb:32:in `create'
最佳答案
如果您的查找失败(因为没有记录)并且您的创建失败(因为验证失败),该函数返回 nil。
关于ruby-on-rails - Rails 如果存在则更新,否则使用 find_or_create_by 创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13870750/