2012-08-15 2 views
0

좋아, 이건 진짜 멍청한 질문 같아.단순한 단일 루비 파일 웹 응용 프로그램

저는 현재 내 MAMP 서버에서 실행되는 간단한 html 및 javascript 뉴스 리더를 보유하고 있습니다. Github에서 확인할 수 있습니다. 모든 것은 정말 작은 PHP 파일에 의해 수행되는 피드를 가져오고 캐시하는 것을 제외하고 클라이언트 측을 실행합니다. 나는 그것에 매개 변수를 전달하여 PHP 스크립트에서 뉴스 피드를 요청 아약스 전화를했습니다.

나는 Ruby를 배우고 Ruby에서이 간단한 PHP 스크립트를 다시 시작했습니다. 내가 가진 문제는 내가 php로 할 것 같은 매개 변수를 가진 아약스를 통해 루비 스크립트를 요청할 수 없다는 것입니다.

그렇다면이 작업을 수행하는 데 가장 간단한 단계는 무엇입니까?

나는 Sinatra처럼 작지만 과장 될 프레임 워크처럼 느낍니다. 그래서 어떤 도움을 많이 주시면 감사하겠습니다. 나는 이것을 잘못 생각하고있다. 감사.

업데이트

나는 결국 루비 CGI의 길을 갔다. 여기 내가 한 일이있다.

내 스크립트가있는 폴더에 .rb 파일을 실행하도록 다음과 같은 .htaccess 파일을 추가했습니다.

AddHandler cgi-script .rb 
Options +ExecCGI 

그런 다음이 루비 파일을 시작했습니다.

#!/usr/bin/ruby 
require 'cgi' 

cgi = CGI.new('html4') 

cgi.out { 
    cgi.html { 
     "Hello World" #started content here 
    } 

} 

나는 그 파일이 실행 가능함을 확인했다. chmod 774.

도움 주셔서 감사합니다.

답변

0

여기서 가장 간단한 해결책은 Ruby CGI입니다.

+0

Rack을 사용하는 것이 순수한 Ruby CGI보다 쉽다고 생각합니다. Ruby CGI로 서버를 쉽게 설치할 수 있습니까? – retro

+0

이미 웹 서버가 구성되어 있습니까? 나는 당신이 PHP를 (아마도 아파치와 mod_php로) 돌리고 나서 당신이하는 일을 추측하고 있나? 이 경우 Ruby CGI를 처리하도록 설정하는 것은 쉽습니다. – Mark

+1

고마워, 내가 결국 들어간 길이었다. 누락 된 퍼즐 조각은 .htaccess 규칙을 추가하여 rb 파일을 인식하고 파일을 실행 가능하게 만드는 것입니다. – mattl

0

sinatra가 여전히 당신에게 중요하다고 생각한다면, 더 깊은 곳으로 가서 순수한 Rack 앱을 작성하십시오. https://github.com/stevenwilkin/ip.stevenwilkin.com

랙이

[200   , {"Content-Type" => "text/plain"}, [env["REMOTE_ADDR"]]] 
[return status , headers hash     , body string   ] 

레일,시나와 웹 프레임 워크 내부 랙을 사용하는 다른 루비의 많은처럼 단지 3 요소 배열을 필요로 -

예를 들어이 최소한의 응용 프로그램을 참조하십시오.

요청 매개 변수를 멋지게 형식화해야하는 경우 예를 들어 http://rack.rubyforge.org/doc/classes/Rack/Request.html을 사용할 수 있습니다.

+0

당신이 지적한 응용 프로그램과 같이 자체 서버에서 실행해야합니까? – mattl

+0

에 의해 지원되는 모든 앱 서버 랙을 사용할 수 있습니다. https://github.com/rack/rack#supported-web-servers – retro

관련 문제