2016-08-30 5 views
0

나는 레일스 튜토리얼 서적에서 레일스를 배우려고 노력하고있어 가능한 최상의 경험을 얻으려고 노력할 수있다. 지금 나는 쉽고 똑바로되어야하는 무언가에 붙어 있습니다. 우리는 여전히 매우 시작 부분에 작은 "장난감 애플 리케이션"것 같은 아주 기본적인 트위터를 만드는레일 튜토리얼 2.2 : 퓨마 서버

, 우리는 사용 : 다음하지 틀리지 및 경우

$ rails generate scaffold User name:string email:string 

사용자 테이블을 생성하려면 :

기존 테이블 구조를 업데이트하는 것으로 추측됩니다 (확실하지는 않지만 나중에 모든 것이 설명됩니다). 내가 한하는 쉽게 구분할 탭에서

$ rails server -b $IP -p $PORT 

이 오류 가지고 :

마지막으로 우리는이를 실행 해야하는

~/workspace/toy_app$ rails server -b $IP -p $PORT 
=> Booting Puma 
=> Rails 5.0.0.1 application starting in development on http://-p:3000 
=> Run `rails server -h` for more startup options 
Puma starting in single mode... 
* Version 3.4.0 (ruby 2.3.1-p112), codename: Owl Bowl Brawl 
* Min threads: 5, max threads: 5 
* Environment: development 
* Listening on tcp://-p:3000 
Exiting 
/var/lib/gems/2.3.0/gems/puma-3.4.0/lib/puma/binder.rb:255:in `initialize': getaddrinfo: Name or service not known (SocketError) 
    from /var/lib/gems/2.3.0/gems/puma-3.4.0/lib/puma/binder.rb:255:in `new' 
    from /var/lib/gems/2.3.0/gems/puma-3.4.0/lib/puma/binder.rb:255:in `add_tcp_listener' 
    from /var/lib/gems/2.3.0/gems/puma-3.4.0/lib/puma/binder.rb:102:in `block in parse' 
    from /var/lib/gems/2.3.0/gems/puma-3.4.0/lib/puma/binder.rb:85:in `each' 
    from /var/lib/gems/2.3.0/gems/puma-3.4.0/lib/puma/binder.rb:85:in `parse' 
    from /var/lib/gems/2.3.0/gems/puma-3.4.0/lib/puma/runner.rb:129:in `load_and_bind' 
    from /var/lib/gems/2.3.0/gems/puma-3.4.0/lib/puma/single.rb:84:in `run' 
    from /var/lib/gems/2.3.0/gems/puma-3.4.0/lib/puma/launcher.rb:172:in `run' 
    from /var/lib/gems/2.3.0/gems/puma-3.4.0/lib/rack/handler/puma.rb:51:in `run' 
    from /var/lib/gems/2.3.0/gems/rack-2.0.1/lib/rack/server.rb:296:in `start' 
    from /var/lib/gems/2.3.0/gems/railties-5.0.0.1/lib/rails/commands/server.rb:79:in `start' 
    from /var/lib/gems/2.3.0/gems/railties-5.0.0.1/lib/rails/commands/commands_tasks.rb:90:in `block in server' 
    from /var/lib/gems/2.3.0/gems/railties-5.0.0.1/lib/rails/commands/commands_tasks.rb:85:in `tap' 
    from /var/lib/gems/2.3.0/gems/railties-5.0.0.1/lib/rails/commands/commands_tasks.rb:85:in `server' 
    from /var/lib/gems/2.3.0/gems/railties-5.0.0.1/lib/rails/commands/commands_tasks.rb:49:in `run_command!' 
    from /var/lib/gems/2.3.0/gems/railties-5.0.0.1/lib/rails/commands.rb:18:in `<top (required)>' 
    from /home/zero/workspace/toy_app/bin/rails:9:in `require' 
    from /home/zero/workspace/toy_app/bin/rails:9:in `<top (required)>' 
    from /var/lib/gems/2.3.0/gems/spring-1.7.2/lib/spring/client/rails.rb:28:in `load' 
    from /var/lib/gems/2.3.0/gems/spring-1.7.2/lib/spring/client/rails.rb:28:in `call' 
    from /var/lib/gems/2.3.0/gems/spring-1.7.2/lib/spring/client/command.rb:7:in `call' 
    from /var/lib/gems/2.3.0/gems/spring-1.7.2/lib/spring/client.rb:30:in `run' 
    from /var/lib/gems/2.3.0/gems/spring-1.7.2/bin/spring:49:in `<top (required)>' 
    from /var/lib/gems/2.3.0/gems/spring-1.7.2/lib/spring/binstub.rb:11:in `load' 
    from /var/lib/gems/2.3.0/gems/spring-1.7.2/lib/spring/binstub.rb:11:in `<top (required)>' 
    from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
    from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
    from /home/zero/workspace/toy_app/bin/spring:13:in `<top (required)>' 
    from bin/rails:3:in `load' 
    from bin/rails:3:in `<main>' 

는 아무것도 손상을? 내가 잘못 했니? 나는에 (응용 프로그램 폴더에) 퓨마를보고 기억 파일을 확인 가서는 보석 파일입니다 :

gem 'puma',   '3.4.0' 

그리고 puma.rb 파일 (꺼내서 코멘트) :

threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }.to_i 
threads threads_count, threads_count 

port  ENV.fetch("PORT") { 3000 } 

environment ENV.fetch("RAILS_ENV") { "development" } 

plugin :tmp_restart 

언급 한 모든 파일을 넣을 예정 이었지만 코드가 많았습니다. 유용한 정보가 있으면 게시하고 가능한 쓸모없는 코드로 스팸하지 않으려 고합니다.

답변

1

$IP은 사용자 환경에 정의되어 있지 않으므로 rails server-p을 IP 주소로 사용하려고합니다.

rails server -b ${IP:-127.0.0.1} -p ${PORT:-3000} 

가 또는 rails server -b $IP -p $PORT을 실행하기 전에 export 이러한 환경 변수를 설정 :

export IP=127.0.0.1 
export PORT=3000 

을 아니면 레일 '기본값 괜찮 있다면, 바로이 모든 것을 잊고 rails server 실행이보십시오. :-)

1

로컬에서 실행중인 경우 인수없이 rails server을 사용할 수 있어야합니다. Hartl 자습서를 사용하는 경우 추가 인수가 필요한 웹 기반 IDE를 사용하고 있다고 가정합니다.

0

cloud based IDE을 사용하는 경우 particular IP & PORT에 수신해야합니다. 예를 들어 C9 일 경우 0.0.0.0 and 8080을 청취해야합니다. 그래서 그들은 기본적으로는 localhost입니다, 설치를 실행하면 environment variables, $IP & $PORT.

,

echo $IP ###gives 0.0.0.0 
echo $PORT ###gives 8080 

rails s -b $IP -p $PORT ##Rails x.x.x application starting in development on http://0.0.0.0:8080 

-b 옵션은 지정된 IP에 레일을 결합 있습니다.

당신이 당신의 로컬 컴퓨터에있는 경우, 실행

rails s ### Rails x.x.x application starting in development on http://localhost:3000