我正在尝试创建一个文本文件,其中包含我在redmine上添加的自定义字段的值。我试图从project_controller.rb的create方法中的SQL查询中获取它(在redmine 1.2.0的第80行),如下所示:
sql = Mysql.new('localhost','root','pass','bitnami_redmine')
rq = sql.query("SELECT value
FROM custom_values
INNER JOIN projects
ON custom_values.customized_id=projects.id
WHERE custom_values.custom_field_id=7
AND projects.name='#{@project.name}'")
rq.each_hash { |h|
File.open('pleasework.txt', 'w') { |myfile|
myfile.write(h['value'])
}
}
sql.close
如果我在一个单独的文件中测试它(使用现有的项目名称而不是@project.name),这可以正常工作,所以它可能是一个语法问题,但我找不到它是什么。我也很高兴听到任何其他解决方案来获得这个价值。
谢谢!
(有一个非常相似的帖子here,但没有一个解决方案真正起作用)
答案 0 :(得分:0)
首先,您可以使用Project.connection.query
而不是您自己的Mysql实例。其次,我会尝试记录SQL RAILS_DEFAULT_LOGGER.info "SELECT ..."
并检查它是否正常......第三,我会使用identifier
代替name
。
答案 1 :(得分:0)
我最终只使用params["project"]["custom_field_values"]["x"]
,其中x
是自定义字段的ID。我仍然不知道为什么sql查询不起作用但很好,这更简单,更快。