문제

생성 스크립트를 사용하여 컨트롤러를 작성하려고합니다. 다음 명령을 실행합니다.

> ruby script/generate controller Greeting

그리고 컨트롤러는 아무런 문제가없는 것 같습니다. 그런 다음 GreetingController에 색인이라는 메소드를 추가합니다.

class GreetingController < ApplicationController
  def index
    render :text => "<h1>Welcome to your first Rails application<h1>"
  end
end

그런 다음 Webrick 웹 서버를 시작하고 내 브라우저를 http://127.0.0.1:3000/greeting, 그러나 브라우저에서 오류 메시지가 표시됩니다.

We're sorry, but something went wrong.

We've been notified about this issue and we'll take a look at it shortly.

적어도 내가 읽고있는 책에 따르면 작동해야합니다. O'Reilly의 Ruby on Rails. 무엇이 잘못 될 수 있는지 아십니까? 이 책은 몇 년 전에 쓰여졌 고, 아마도 새로운 버전이나 레일을 사용하고 있습니다. 어떤 아이디어?

업데이트 다음은 개발 중입니다.

/!\ FAILSAFE /!\  Sat Nov 28 22:11:12 -0500 2009
  Status: 500 Internal Server Error
  no such file to load -- mysql
    /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
    /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
    /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:156:in `require'

참고로 전화를 통해 응용 프로그램을 만들었습니다.

rails /home/myuser/www/mynewapp -d mysql
도움이 되었습니까?

해결책

MySQL 데이터베이스 드라이버를로드 할 수 없습니다. 설치되지 않은 것 같습니다. 당신은 이것을 시도 할 수 있습니다 :

sudo gem install mysql

나는 당신이 아마 MySQL 데이터베이스가 설정되어 있지 않을 것이라고 생각합니다. 대부분의 사람들은 개발을 위해 sqlite3을 사용합니다. config/database.yml은 다음과 같습니다.

development:
  adapter: sqlite3
  database: db/development.sqlite3
  pool: 5
  timeout: 5000

SQLITE3가 설치되어 있지 않은 경우 방금 실행하십시오

sudo gem install sqlite3-ruby

그런 다음 마이그레이션을 실행하면 모두 설정해야합니다.

rake db:migrate

업데이트나는 이것을 여기에 게시하여 일부 형식을 사용할 수있었습니다.

미래에 전화 :

rails /path/to/app

이렇게하면 레일이 SQLITE3 인 기본 데이터베이스를 사용하게됩니다. 그런 다음 배포하기로 결정한 경우 프로덕션 데이터베이스를 변경할 수 있습니다.

행운을 빕니다.

다른 팁

Rails는 데이터베이스를 사용한다고 가정합니다. database.yml에서 유효한 연결 문자열을 제공하지 않으면 게이트에서 바로 질식합니다. 이것은 어떤 이후로 유효한 가정입니다 진짜 웹 앱은 데이터베이스를 사용합니다.

그러나보기와 컨트롤러의 작동 방식을 엉망으로 만들려고한다면 데이터베이스 기능을 완전히 비활성화 할 수 있습니다. 그렇게하려면 구성/환경에 추가하십시오 .RB :

config.frameworks -= [ :active_record ]

귀하가 게시 한 간단한 오류에서 MySQL을 사용하려는 경우 MySQL GEM이 설치되어 있는지 확인할 수 있습니다.

Linux에 있다면 시도해보십시오.

gem install mysql

MySQL 드라이버를로드하려고합니다. config/database.yml을 편집 했습니까? 내 것 같아요 :

# SQLite version 3.x
# gem install sqlite3-ruby (not necessary on OS X Leopard)
development:
  adapter: sqlite3
  database: db/development.sqlite3
  pool: 5
  timeout: 5000

또한 Rails, Third Edition을 사용하여 Agile Web Development로 전환하십시오. 그것은 좋은 튜토리얼이며 여전히 2.2로 작성되었지만 여전히 최신 버전의 레일과 함께 작동합니다.

  1. 로그인 /로그 디렉토리를 확인하십시오. 훨씬 더 나은 오류 정보를 제공합니다.
  2. 내 생각에 당신은 이중 렌더 오류가 발생하는 것입니다. 즉, 당신이 명시 적으로 렌더링하기 때문에 렌더링 호출 후에 반환 문을 넣어야합니다. - 기본적으로 컨트롤러는 컨트롤러 메소드가 완료된 후 컨트롤러와 일치하는보기를 렌더링하려고합니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top