와...저는 아무리 구글링해도 안나오던데 ㅠㅠ 명쾌한 답변과 깔끔한 해결책까지~ 정말 감사합니다 *^^*
별말씀을.. 좋은 하루 되세요 ^^
좋은 책 번역해주셔서 정말 감사합니다~ 하나하나 따라해보다가 하나 궁금한 것이 있어서 질문드립니다. 5장에서 textfields 프로그램을 따라하는데, form action에 method="post"를 추가해도 주소창에 인자값만 안붙을뿐 동일하게 동작한다고 하셨는데, 저같은 경우에는 ActionController::InvalidAuthenticityToken in LookController#at 이러한 메시지를 뿌리면서 안되네요...제가 뭔가 잘못한 것인지...안바쁘시면 답변 좀 부탁드릴게요. 좋은 하루 되시구요 ^^
다시 해보고 답변드리겠습니다. 그리구 질문 남기실때에는 이메일 주소라도 남겨주셨으면 좋겠어요. 그래야 제가 답을 찾은 다음에 메일로 알려드리죠. ^^ 아무튼 잠시만 기다려 주세요~
http://www.buggymind.com/148 여기에 질문하신 내용에 대한 답변을 올렸습니다. 구글에 검색하셔도 찾을 수 있으니 벌써 찾으셨을수도 있겠지만... ^^ 좋은 하루 되세요~
저도밑에분과같은 오류가발생합니다; http://localhost:3000/hello url을 치면, no such file to load -- sqlite3 RAILS_ROOT: C:/rubydev/ch04/first .................... 라는 에러메세지가 뜨는데; 어떻게 해결해야하나요;
질문주신 내용에 대한 답변을 http://www.buggymind.com/135 에 등록하였습니다. 참고하시기 바랍니다. :-)
안녕하세요. ^^* 정인서(inseojeong@gmail.com) 라고 합니다. 얼마전 Beginning Ruby on Rails - Steven Holzner [정보문화사] 서적을 구매하였습니다. 여러가지의 예제를 실행하려 하다가 잘 동작하지 않는 부분이 있어 질문을 드립니다. chapter1 맛보기와 chapter4 Rails 맛보기에서 c:\rubydev\ch04\first>ruby script/server 를 실행하고 http://localhost:3000/hello/there 를 url 에 입력하면 다음과 같이 에러가 발생됩니다. MissingSourceFile in HelloController#there no such file to load -- sqlite3 RAILS_ROOT: C:/rubydev/ch04/first Application Trace | Framework Trace | Full Trace c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require' c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require' c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:496:in `require' c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:342:in `new_constants_in' c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:496:in `require' c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/core_ext/kernel/requires.rb:7:in `require_library_or_gem' c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/core_ext/kernel/reporting.rb:11:in `silence_warnings' c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/core_ext/kernel/requires.rb:5:in `require_library_or_gem' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/connection_adapters/sqlite3_adapter.rb:10:in `sqlite3_connection' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:291:in `send' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:291:in `connection=' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:259:in `retrieve_connection' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:78:in `connection' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/query_cache.rb:8:in `cache' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/caching.rb:677:in `perform_action' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/base.rb:524:in `send' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/base.rb:524:in `process_without_filters' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/filters.rb:685:in `process_without_session_management_support' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/session_management.rb:123:in `process' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/base.rb:388:in `process' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/dispatcher.rb:171:in `handle_request' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/dispatcher.rb:115:in `dispatch' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/dispatcher.rb:126:in `dispatch_cgi' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/dispatcher.rb:9:in `dispatch' c:/ruby/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/webrick_server.rb:112:in `handle_dispatch' c:/ruby/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/webrick_server.rb:78:in `service' c:/ruby/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' c:/ruby/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' c:/ruby/lib/ruby/1.8/webrick/server.rb:173:in `start_thread' c:/ruby/lib/ruby/1.8/webrick/server.rb:162:in `start' c:/ruby/lib/ruby/1.8/webrick/server.rb:162:in `start_thread' c:/ruby/lib/ruby/1.8/webrick/server.rb:95:in `start' c:/ruby/lib/ruby/1.8/webrick/server.rb:92:in `each' c:/ruby/lib/ruby/1.8/webrick/server.rb:92:in `start' c:/ruby/lib/ruby/1.8/webrick/server.rb:23:in `start' c:/ruby/lib/ruby/1.8/webrick/server.rb:82:in `start' c:/ruby/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/webrick_server.rb:62:in `dispatch' c:/ruby/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/commands/servers/webrick.rb:66 c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require' c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require' c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:496:in `require' c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:342:in `new_constants_in' c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:496:in `require' c:/ruby/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/commands/server.rb:39 c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require' c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require' script/server:3 c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require' c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require' c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:496:in `require' c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:342:in `new_constants_in' c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:496:in `require' c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/core_ext/kernel/requires.rb:7:in `require_library_or_gem' c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/core_ext/kernel/reporting.rb:11:in `silence_warnings' c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/core_ext/kernel/requires.rb:5:in `require_library_or_gem' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/connection_adapters/sqlite3_adapter.rb:10:in `sqlite3_connection' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:291:in `send' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:291:in `connection=' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:259:in `retrieve_connection' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:78:in `connection' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/query_cache.rb:8:in `cache' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/caching.rb:677:in `perform_action' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/base.rb:524:in `send' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/base.rb:524:in `process_without_filters' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/filters.rb:685:in `process_without_session_management_support' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/session_management.rb:123:in `process' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/base.rb:388:in `process' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/dispatcher.rb:171:in `handle_request' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/dispatcher.rb:115:in `dispatch' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/dispatcher.rb:126:in `dispatch_cgi' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/dispatcher.rb:9:in `dispatch' c:/ruby/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/webrick_server.rb:112:in `handle_dispatch' c:/ruby/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/webrick_server.rb:78:in `service' c:/ruby/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' c:/ruby/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' c:/ruby/lib/ruby/1.8/webrick/server.rb:173:in `start_thread' c:/ruby/lib/ruby/1.8/webrick/server.rb:162:in `start' c:/ruby/lib/ruby/1.8/webrick/server.rb:162:in `start_thread' c:/ruby/lib/ruby/1.8/webrick/server.rb:95:in `start' c:/ruby/lib/ruby/1.8/webrick/server.rb:92:in `each' c:/ruby/lib/ruby/1.8/webrick/server.rb:92:in `start' c:/ruby/lib/ruby/1.8/webrick/server.rb:23:in `start' c:/ruby/lib/ruby/1.8/webrick/server.rb:82:in `start' c:/ruby/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/webrick_server.rb:62:in `dispatch' c:/ruby/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/commands/servers/webrick.rb:66 c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require' c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require' c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:496:in `require' c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:342:in `new_constants_in' c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:496:in `require' c:/ruby/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/commands/server.rb:39 c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require' c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require' script/server:3 This error occurred while loading the following files: sqlite3 Request Parameters: None Show session dump --- flash: !map:ActionController::Flash::FlashHash {} Response Headers: {"cookie"=>[], "Cache-Control"=>"no-cache"} 위와 같은 에러가 발생하는 이유가 어떤 셋팅이 잘못 되어서 인지...어떤 이유인지 설명을 부탁드립니다. 감사합니다.
설치하신 패키지 버전을 정확하게 알려주시면 제가 다시 한번 해보도록 하겠습니다. ^^
결과 블로그에 올려두었고, 메일도 보냈사오니 확인해보시기 바랍니다. 늦어서 죄송합니다.
유닉스란 말을 가끔 들어왔지만.. 한번도 접해보지 못한.. 유닉스가 대체 무엇이란 말인가(?)에 궁금증을 가지고 있는중.. 무턱대고 웹서핑 중 "초보자를 위한 UNIX 제4판"을 구입을 했습니다. 이 책은 UNIX를 처음 접하는 사람을 위한 입문서라는 역자님의 글에.. "책 하나는 제대로 샀구나"라고 생각하며.. 하나하나 차근차근 따라 해보리라 마음먹었으나 시작부터 난관에 부딪혔는데요.. 1장을 가볍게 읽고.. (읽으면서 실습환경을 어떻게 꾸며야 되나라고 생각했던 걱정이 현실로..) 결국 2장을 들어가려니.. Solaris 10에서 테스트를 거쳤다는 설명과, AT&T 시스템 V 계열이나 Berkeley Unix계열이면 예제들을 실행할 수 있을 것이다라고 말해두셨는데.. (V계열..Berkeley UNIX계열..책 사가자고 처음 들어본 얘기들입니다.) 처음 UNIX를 대하는 저에겐 개인컴퓨터에서도 실습이 가능한지부터..(다중사용자 시스템이라지만..설마..) (1.지식IN뒤져보다 보니 잘못된 정보일 수도 있으나 개인용컴퓨터에선 UNIX실습이 불가능하단 글을 보았습니다. 혹은 2.학교 전산실에서 계정을 얻어 공부한다는 글도 보고 하니..) 어디서 어떻게 구해서 설치환경 잡을일이 걱정이군요.. 어느 영화배우가 다 차려준 밥상 먹기만 했다고 하는데.. 차려주신 밥상에다가 숟가락 들고 먹여달라고 하는 것 같아 괜시리 죄송한 마음이 들기도 하는데요.. 솔직히 요즘 왠만한 관련서적보면 하다못해 안알려줘도 될.. 프로그래밍 설치환경 Next만 쭈욱 눌러줘도 될 부분을.. 화면 캡춰까지해서 친철히(?)설명해주고 있는데요..(CD는 덤으로..) 그 정도까진 아니더라도 어디서 어떤 플그램을 다운받아 어떻게 환경설정을 해주라고.. 기본적인 부분만 조금 언급해 주셨으면 하는 아쉬움이 남습니다. 초보 UNIX입문서라 하지만.. 실습환경과 관련해서는 위에서 언급한 V계열이니 Berkeley UNIX계열 딱 2줄말 말씀해 주시니 어떻게 해야할지 난감할 따름입니다. 저자의 글을 번역한 출간서라서 그렇다라면 할말 없지만요. ........................................................................... 글을 적다보니 역자님에게 따지는 꼴이 되어버렸네요.. 이런일은 출판사에다가 말해야 할 부분인데..ㅡㅡ;; 혹시나 저 처럼 책을 구입한 후 저와 같은 문제로 이곳에 글을 올리신 분이 있지 않을까라는 희망에 찾아왔다가 책과 관련된 글이 없음에 전혀 없음에 실망도 하고, 실습환경을 어떻게 마련해야 하는지 여쭤본다는게..심한 넋두리를 남긴 꼴만 되어버려 죄송한 마음이 앞섭니다. ..UNIX를 정복하기 위해 실습환경을 꾸밀때 개인용PC에는 무엇을 다운받아 설치하면 되는지요? 개인용 PC에서 공부할 수 밖에없는 상황이니 웹서버 환경은 실습해 볼 수 없겠지요? 일요일이네요.. 날씨만큼이나 편안하고 즐거운 휴일보내시길 바랍니다.
Window XP 환경이시라면 VMPlayer를 통해 Unix 환경을 설치해 보실 것을 추천드립니다. XP위에 하나의 가상 Unix 운영체제를 덤으로 얹을 수 있지요. 이 블로그의 Unix/Linux 폴더에 관련한 글이 있습니다. Ubuntu를 설치하시고 나면 그 책에 실린 예제들을 실습해 보실 수 있을 것입니다. 하시다가 궁금한 사항이 생기시면, 저한테 전화를 주셔도 좋구요. 주말 빼고 주중 오전중에는 전화를 받을 수 있습니다. 공일육-사이팔-칠사공공으로 전화주세요. ^^
위키를 보았습니다. 전문원서(기술서적포함)를 기준으로 읽는 속도인가요? 상당히 빠른 편 같습니다. 저야 전문원서는 아니지만 해리포터 기준으로는 1분에 2페이지는 읽는데, 저도 전문원서를 도전해 봐야 겠군요. 저같이 리딩에 고민하신 분이 있다니 너무 반갑습니다.
저같은 경우에는 해리포터 같은 책이 더 어렵습니다. -_-; 그런 책을 1분에 2페이지는 읽으신다니 부럽네요. 저도 도전 분야를 좀 달리 해봐야겠습니다. ㅋㅋ
아~ 좋은답변 감사드립니다. ^^ 꾸벅~ 답변해주신거 제 블로그에 불펌질을 해버렸어요 - 괜찮은시죠??? ^^ TDD라는 것도 오늘 첨알았어요^^ 많은 공부가 되었습니다. 감사합니다^^
괜찮습니다. 저도 배우는 중이니, 앞으로 자주 의견교환 했으면 좋겠습니다. 언제든 찾아주세요 ^^
안녕하세요^^ 오늘도 들러서 글을 일고 갑니다. 혹시 질문하나 드려도 될까요??? 프로그램을 처음 설계할때요??? 과연 어디까지 설계해야할까요?? 프로그램을 짜다보면 자꾸만 늘어나는 클래스와 처음에 생각지도 못한 난관에 부딪히게 되는데.... 과연 최초 프로그램 코드를 짜기전에 어디까지 구상하는게 좋을까요?? Finite State Machine 과 UML을 Use Case Diagram 등 여러가지 방법을 학교에서 배우긴했는데.... 개념만 배웠지.. 정말 이것을 사용해서 어디까지 설계를 해야 되는지 모르겠습니다. 변수이름 하나까지 세세하게 설계를 해야하나..... 어느선이 과연 적당한가???..... 프로젝트경험이 작은 초보라서^^ 내공있으신 프로그래머 같아서 문뜩 생각나서 질문 드립니다.^^ 돈으로도 살 수 없는 귀중한 답변을 감히 기대해도 될까요?? ^^
음, 저도 했던 고민을 비슷하게 하고 계시는군요. 방명록이라는 작은 공간에서 나누기에는 좀 힘들 정도로 답변이 길어질 수도 있겠습니다만, 좋은 책을 몇권 소개해드리면 짧은 답변으로도 최대한의 효과를 거둘 수 있을 것 같군요. :-) 1. 사용자 스토리 (인사이트) 2. UML, 실전에서는 이것만 쓴다 (인사이트) 이 책들에서 말하고자 하는 바는, 프로젝트 초기에 모든 설계를 완결지으려고 하는 것은 여러 가지로 좋지 않다는 것입니다. 제가 지금 번역중인 Agile Estimating and Planning에 나오는 개념중에, 불확실성 원추라는 것이 있습니다. 프로젝트 초기에 모든 설계를 완결지으려고 하는 것은, 결국 프로젝트 초기에 모든 불확실성을 해소하려는 것에 다름 아닙니다. 하지만 아시다시피 프로젝트 초기에는 사용자나 개발자나 "자신이 진정으로 원하는 것이 무엇인지" 제대로 알지 못하는 경우가 허다합니다. 그런 상태에서 불확실성을 제대로 없앤다는 것은 불가능하겠지요. 결국 위의 책들은 "필요할 때 조금씩 설계하고 구현하고 테스트한다"는 접근법을 취하고 있습니다. 가령 내가 구현해야 하는 기능들의 집합이 A라고 하고, 거기에 속한 기능들이 a1, a2, a3, .... an 이렇게 있다고 했을 때, 그 기능들을 우선순위에 따라 골라내어 구현을 하기 시작하는 것이죠. 그리고 실제 구현에 들어갈 때 그 부분을 설계하고 구현하는 것입니다. 프로젝트 초기에 모든 일을 다 하려고 하면 프로젝트 초기에 UML 다이어그램과 같은 부분까지 전부 그려야 할 필요성이 생길 수 있는데, 이것은 잦은 요구사항의 변화를 감안한다면 무리한 일입니다. (제 경험이기도 합니다.) 그러므로 필요한 기능만을 그 기능을 구현할 시점에 종적으로 설계하고 구현하고 테스트하는 것이 바람직하다고 생각합니다. 아무튼 제가 소개해드린 책은 읽어보시도록 하는 것이 좋을 것 같구요. 실제 코드를 잡고 있을 때 "대체 어디까지 설계하는 것이 좋을까"하는 것은 사실 좀 애매합니다. 하지만 한가지 가이드라인이 있긴 합니다. 코드를 짤 때, 그 코드를 실제로 사용하게 될 다른 코드의 관점에서 설계하고 테스트하도록 하는 것입니다. 그런 점에서 본다면 TDD의 사례를 참고하시는 것이 바람직하겠습니다. 참고로, 변수 이름까지 상세하게 설계하는 것은 무리한 일인 것 같고, "인터페이스 수준"에서 설계를 하는 것이 적당한 것 같습니다.
궁금한 것 찾을 때 위키를 가끔 이용하곤 하는데, 여기 있는 위키는 그것과 별도로 낭만고양이님이 운영하시는 건가요? 구경 잘 했습니다. 음... 스킨이 탐나요!^^
네. 여기 위키는 제가 따로 운영하는겁니다. 아마 말씀하신 위키는 '위키피디아'인것 같은데요. 위키 개념을 차용하여 만든 인터넷 백과사전이죠. 스킨 괜찮은가요? 이거 만드느라 무지 힘들었습니다. ㅋㅋㅋㅋ
안녕하세요 블로그 잘 구경했습니다. 우연히 Google을 통해 날라왔습니다. 제 블로그에 링크 하고 싶은데 괜찮으시죠?
괜찮습니다. ^^