这是我关于Stack Overflow的第一个问题,请温柔地对待我: - )
我有一个基于开源项目的Rails项目(Rails 4.2.6) - Netflix的Scumblr(https://github.com/Netflix/Scumblr)。该项目是Netflix原始项目的定制,以满足客户的需求。
有一个控制器,tags_controller.rb,突然停止返回标签(采用JSON格式),而是返回一个字符串,如“#”。 在调查数据库时,我注意到标签是重复的,可能是由于我编写的Rake任务中的一个错误,用于自动将数据插入到应用程序中。我删除了所有重复项,但问题仍然存在。
目前只在生产服务器上出现此问题。在我自己的开发VM上,它工作正常。
我没有看到任何日志中的任何错误,而且我一直在试图理解出了什么问题,我已经敲了几个小时。
Bellow是控制器的代码:
class TagsController < ApplicationController
authorize_resource
def index
q = "%#{params[:q]}%"
@tags = Tag.where("lower(name) like lower(?)", q).page(params[:page]).per(params[:per_page])
respond_to do |format|
format.json { render json: @tags, meta: {total: @tags.total_count} , adapter: :json}
end
end
end
.page(...)。per(...)用于分页(使用Kaminari)。删除它们没有任何效果。
以下是模型:
class Tag < ActiveRecord::Base
#attr_accessible :color, :name
has_many :taggings
has_many :taggables, through: :taggings, source: :taggable, :source_type=>""
def tagged(type)
self.taggings.where(:taggable_type=>type)
end
def name_value
if(self.value.present?)
"#{self.name}: #{self.value}"
else
self.name
end
end
end
你们有没有遇到过这样的问题? 你会如何解决这个问题?我此刻无能为力:-(。 任何帮助将不胜感激。
提前致谢, 阿萨夫
更新:我发现标签名称在我的开发虚拟机上也是重复的,它仍然正确地提供标签,因此它排除了标签重复的原因。我怀疑它与将gems更新为更新版本有关,但由于Gemfile / Gemfile.lock非常大,我不知道如何隔离相关的gem(如果有的话)。
有什么想法吗?