2009-11-22 4 views
0

JRuby에서 hpricot을 사용하려고합니다. 내 문제는 다음과 같습니다. 이 코드를 가지고 있다면 :netbeans의 hpricot

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

어디에 넣어야합니까? 내 컨트롤러에? 왜냐하면 그것을 받아들이지 않기 때문입니다. 그리고 내 모델에 넣으려고한다면. 어떻게하면 내 관점으로 볼 수 있을까요? 하지 파일 -

은 wired.com 웹 사이트를 시도 할 때이 ProductsController가 번호가

해당 파일 또는 디렉터리를 만들 수 없습니다

errno를 :: ENOENT 날이 오류를 제공

주셔서 감사합니다 찾았습니다 - www.wired.com

RAILS_ROOT : H : \ Documents 및 설정/소유자/내 Documents/NetBeansProjects/RailsApplication5

+0

컨트롤러, 모델 및 뷰에 대해 이야기하는 중이라면 JRuby on Rails를 사용하고 있고 Hpricot with Rails를 사용하고 있다고 가정합니까? –

+0

예, 죄송합니다. – Lilz

+0

괜찮습니다. 대답은 곧 나옵니다.) –

답변

1

Hpricot을 이해하고보기 란 어려운 일은 아닙니다.

  1. 설치 Hpricot : jruby -S gem install hpricot. 당신의 레일 응용 프로그램에서
  2. 파일에 config.gem로 시작하는 라인을 찾아 당신이 직접 Hpricot을 사용할 수 있습니다

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

  3. 추가 config/environment.rb 파일을 찾을 수 컨트롤러를 정상 (J) 루비 코드와 같습니다. 당신의 견해에 어떤 ​​종류의 비즈니스 로직도 넣지 말고, 온전하고, 읽기 쉽고, 유지 보수가 잘되는 것들을 유지하기 위해서 최소한의 조건문만을 두는 것이 좋습니다. 또는 "스키니 컨트롤러, 간단한 뷰, 뚱뚱한 모델"패러다임을 따르는 경우 코드를 리팩토링하고 Hpricot 호출을 뷰에서 액세스 할 수있는 모델 클래스 내부의 메서드에 직접 적용 할 수 있습니다.

일부 코드 예제는 아래와 같습니다.

예 컨트롤러 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 

예보기 RAILS_ROOT/app/views/example/index.html.erb : 내가 언급했듯이

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

, 당신은 모델에 다시 Hpricot(open(...)) 전화를 푸시 할 수 있습니다,하지만 먼저 시도해보십시오. 작동하는 경우 리팩터링 :)

+0

여전히 "No such file or directory - File not found"오류가 발생했습니다. S : S – Lilz

+0

btw thanks much so :) – Lilz

+0

예, hobix.com 웹 사이트 링크가 작동하지 않으므로 www.wired와 같이 더 대중적인 것을 시도하십시오.co.kr에서 URL을 찾으십시오. 가능한 경우 전체 오류 메시지 및 스택 추적으로 질문을 업데이트하십시오. –