2009-11-22 5 views
0

J'essaie d'utiliser hpricot dans JRuby. Mon problème est le suivant. Si j'ai ce code:hpricot dans netbeans

#!ruby 
require 'hpricot' 
require 'open-uri' 
# load the RedHanded home page 
doc = Hpricot(open("http://redhanded.hobix.com/index.html")) 

où est-ce que je le mets? Dans mon contrôleur? Parce que ce n'est pas l'accepter là. Et si je suis supposé le mettre dans mon modèle. Comment puis-je l'appeler de mon point de vue?

Merci

il me donne cette erreur lorsque vous essayez le site wired.com

Errno :: ENOENT dans # ProduitsController créer

Aucun fichier ou répertoire - Fichier non trouvé - www.wired.com

RAILS_ROOT: H: \ Documents et Paramètres/owner/Mon Documents/NetBeansProjects/RailsApplication5

+0

Si vous parlez de contrôleurs, de modèles et de vues, est-ce que je suppose que vous utilisez JRuby on Rails et que vous voulez utiliser Hpricot avec Rails? –

+0

oui, désolé, je n'ai pas précisé – Lilz

+0

okay, réponse est à venir;) –

Répondre

1

Obtenir Rails pour comprendre et voir Hpricot n'est pas très difficile à faire.

  1. Installez Hpricot: jruby -S gem install hpricot.
  2. Dans votre application Rails, trouver le fichier config/environment.rb
  3. Trouvez les lignes qui commencent par config.gem dans le fichier et d'ajouter

    config.gem "hpricot", :source => "http://code.whytheluckystiff.net"

  4. vous allez maintenant être en mesure d'utiliser hpricot directement à partir d'un contrôleur comme dans le code Ruby (J) normal. Je conseille fortement de ne pas mettre toute logique commerciale dans vos opinions et seulement des conditions minimales pour la santé mentale et afin de garder les choses droites, lisibles et maintenables. Ou si vous suivez le paradigme «contrôleurs minces, vues simples, modèles de graisse», vous pourrez peut-être refactoriser le code et placer les appels Hpricot directement dans une méthode à l'intérieur de votre classe de modèle accessible à partir de la vue.

Certains exemples de code sont ci-dessous.

contrôleur Exemple RAILS_ROOT/app/controllers/example_controller.rb:

class ExampleController < ApplicationController 
    def index 
    @doc = Hpricot(open("http://www.wired.com")) 
    # here come some very serious calculations, queries etc. 
    end 
end 

Exemple vue RAILS_ROOT/app/views/example/index.html.erb à l'aide du contrôleur:

<pre> 
    <%= @doc ? @doc.to_s : "There is no content at the site" %> 
    <!-- blablabla --> 
</pre> 

Comme je l'ai mentionné, vous pourriez être en mesure de pousser l'arrière appel Hpricot(open(...)) au modèle, mais d'abord essayer comme ça. Si ça marche, refactor :)

+0

il me donne encore un "No tel fichier ou répertoire - fichier introuvable" erreur: S: S – Lilz

+0

btw merci beaucoup :) – Lilz

+0

Ouais, que le lien du site hobix.com ne fonctionne pas, alors essayez quelque chose de plus populaire, comme www.wired.com pour l'URL. S'il vous plaît, mettez à jour votre question avec le message d'erreur complet et pile trace, si possible. –