2011-09-23 4 views
1

J'essaye de créer un fichier texte qui contient la valeur d'un champ personnalisé que j'ai ajouté sur redmine. J'ai essayé de l'obtenir à partir d'une requête SQL dans la méthode de création de la project_controller.rb (à la ligne 80 sur Redmine 1.2.0) comme suit:Récupère la valeur du champ personnalisé Redmine dans un fichier

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 

Cela fonctionne bien si je le tester dans un fichier séparé (avec un nom de projet existant à la place de @ project.name) donc cela peut être un problème de syntaxe mais je ne peux pas trouver ce que c'est. Je serais également heureux d'entendre toute autre solution pour obtenir cette valeur.

Merci!

(il y a un poste similaire here mais aucune des solutions réellement travaillées)

Répondre

0

J'ai fini par utiliser simplement params["project"]["custom_field_values"]["x"]x est l'id du champ personnalisé. Je ne sais toujours pas pourquoi la requête SQL n'a pas fonctionné mais bien, c'est beaucoup plus simple et plus rapide.

0

D'abord, vous pouvez utiliser Project.connection.query au lieu de votre propre instance Mysql. Deuxièmement, je voudrais essayer de se connecter au SQL RAILS_DEFAULT_LOGGER.info "SELECT ..." et vérifier si c'est OK ... Et le troisième, je voudrais utiliser identifier au lieu de name.

+0

Nous vous remercions de votre réponse. J'ai trouvé une autre solution via les paramètres de la méthode 'create', mais je vais essayer de savoir comment faire des requêtes sql correctes. – BBackerry

Questions connexes