2009-11-07 5 views
1

Je fais un appel comme ceci:processus en cours C dans Rails

valeur = ./simulated_annealing

Ce qui est un fichier objet C, mais Rails me dit qu'il ne peut pas trouver ce fichier. I le mettre dans le même dossier que le reste des fichiers modèles (puisqu'il est appelé par l'un de ces modèles), mais je suppose qu'il devrait être dans un autre place. J'ai essayé cela en dehors de Ruby et ça marche très bien.

Que dois-je faire?

Répondre

1

La chose est, quand vous dites:

./simulated_annealing

vous dites explicitement: exécuter le fichier nommé simulated_annealing qui se trouve dans le répertoire courant. C'est ce que le ./ signifie. Si le fichier se trouve ailleurs, vous devez lui fournir le chemin ou ajouter ce chemin à la variable d'environnement $ PATH. Donc, vous devez remplacer cette ligne avec:

/path/to/simulated_annealing

/path/to représente le chemin réel.

+0

Le problème est que je ne connaissais pas le chemin. Mais je viens d'imprimer un "LS" commando et maintenant je sais: D merci, c'est résolu! –

+0

Pas de problème. Bonne chance! – Geo

0

La meilleure option consiste à utiliser un chemin absolu pour exécuter le programme. Par exemple, vous pouvez créer un répertoire "bin" sous le répertoire de votre application de rails de niveau supérieur . Placez votre programme sous le répertoire "bin". Ensuite, vous pouvez exécuter le programme quelque chose comme:

cmd = "#{RAILS_ROOT}/bin/cbin arg1 arg2" 
value = `#{cmd}` 
Questions connexes