【发布时间】:2015-02-23 19:23:12
【问题描述】:
我正在尝试进行搜索,但没有得到任何结果。这是错误的:
def BuscarRoles(usuario)
@sql="SELECT * FROM rols WHERE id_rol IN (SELECT id_rol FROM rol_usuarios WHERE id_usuario = "+usuario.to_s+")"
@roles = ActiveRecord::Base.connection.execute(@sql)
@tira='['
if @roles.count>0
@aroles.each do |rol|
@tira = @tira+" { id_rol: '" + rol.id_rol.to_s + "', descripcion: '" + rol.descripcion.to_s
j=j+1
if j<@roles.count
@tira = @tira+ " }, "
else
@tira = @tira+" } ] "
end
end
else
@tira= @tira+"{ { text: 'No hay datos', id: '0', href: '', leaf: true } } ]"
end
return @tira
end
【问题讨论】:
-
没有人能理解这一点 :( 发布跟踪。顺便说一句,您检查跟踪并尝试找出导致问题的行吗?
-
导致问题的行“@aroles.each do |rol|”就像 obj 为零。但数据库中有行
-
这段代码非常危险。原始查询使用原始 SQL 运行,没有任何转义,结果手动呈现为 JSON。方法名称是 CamelCased 并且被语法高亮与常量混淆。我什至不是在谈论使用模型和关联。祝你好运,先生。没有讽刺。但我谦虚地建议重写。
标签: mysql ruby-on-rails ruby activerecord mysql2