2017-01-18 1 views
1

그래서이 튜토리얼을 따르고 있으며,이 시점까지 수행 한 모든 작업이 올바른지 트리플을 확인했습니다. 자습서 : https://www.youtube.com/watch?v=0OzDgi0zqJU초기화되지 않은 상수 포스트 레일스 콘솔, 튜토리얼

비디오의 시작 부분에서 그는 레일 콘솔을 시작하고 "Post.all"을 입력하기를 원합니다. 터미널에 빈 배열이 표시되는 동안이 오류가 발생합니다 (아래).

EIERs-MBP:training eier$ rails c 
Running via Spring preloader in process 75415 
Loading development environment (Rails 5.0.1) 
2.3.0 :001 > Post.all 
NameError: uninitialized constant Post 
from (irb):1 
from /Users/eier/.rvm/gems/[email protected]/gems/railties-5.0.1/lib/rails/commands/console.rb:65:in `start' 
from /Users/eier/.rvm/gems/[email protected]/gems/railties-5.0.1/lib/rails/commands/console_helper.rb:9:in `start' 
from /Users/eier/.rvm/gems/[email protected]/gems/railties-5.0.1/lib/rails/commands/commands_tasks.rb:78:in `console' 
from /Users/eier/.rvm/gems/[email protected]/gems/railties-5.0.1/lib/rails/commands/commands_tasks.rb:49:in `run_command!' 
from /Users/eier/.rvm/gems/[email protected]/gems/railties-5.0.1/lib/rails/commands.rb:18:in `<top (required)>' 
from /Users/eier/Documents/Workspace/rails/training/bin/rails:9:in `<top (required)>' 
from /Users/eier/.rvm/rubies/ruby-2.3.0/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
from /Users/eier/.rvm/rubies/ruby-2.3.0/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
from -e:1:in `<main>' 

내가 사용하고있는 레일 버전 때문인지 전혀 모르겠다. 정말 간단한 튜토리얼이기 때문에 정말 실망 스럽습니다. Post.create (제목 : "first post", content : "test")를 사용하여 레일 콘솔에 내용을 작성한다고 가정하지만 "Post.all"을 입력 할 때 오류가 발생합니다.

class PostsController < ApplicationController 
def index 

end 
end 

이 자신의 파일뿐만 아니라 모습입니다, 우리는 index.html.erb 라우팅 다른 모든 파일을 만들었습니다

다음은 posts_controller.rb 파일입니다. 자세한 정보를 제공해야하는지 알려주세요.

+0

당신이'응용 프로그램/모델/post.rb' – Sravan

+0

데이터베이스를 마이그레이션 한에서 모델 포스트를,이 있습니까? –

+0

@Sravan 아직 모델을 만들지 않았습니다. 자습서의 다음 단계에 있다고 확신합니다. 그가 우리에게 그것을 보여주지 않고 이것을 계속했다면 이상 할 것입니다. – Hamza1510

답변

1

먼저이 명령을 사용하여 모델을 Post 생성,

rails generate model Post title:string text:text

app/models/post.rb 생성하고 이미 데이터베이스가있는 경우 지금 db/migrate

에서 migratiuon 파일이 마이그레이션을 실행

.

rails db:migrate

이제 테이블이 만들어집니다.

이제 개방 rails console/rails c

Post.all

+0

고마워요! @ 글리코 (Glyoko)가 튜토리얼에서 모델 파트를 건너 뛰는 것을 알아 채고 나서 알아 냈습니다. 나는 여전히 레일스에 익숙하지 않기 때문에 모든 튜토리얼을 문자 그대로 받아 들인다. 모델을 생성하고 데이터베이스를 마이그레이션하는 방법을 배웠다. 다시 고마워. – Hamza1510

+0

당신을 도울 다행, 좋은 하루 되세요 :) – Sravan

0

귀하의 posts_controller.rb는 아무 관계가 없습니다. 당신이 Post.all를 입력하면 앱이/모델/post.rb가

class Post < ApplicationRecord # sometimes "< ActiveRecord::Base" instead 
end 

을 정의하고 있는지 확인, 루비 Post - 당신의라는 클래스 조회 모델을-그 위에 all 메소드를 호출하려고합니다. 오류에 uninitialized constant Post이라고 표시되면 게시물 모델을 정의하지 않아야합니다.

+0

아, 알겠습니다! 이제 어떤 일이 일어나고 있지만 새로운 오류가 있습니다. 2.3.0 : 001> Post.all포스트로드 (0.6ms) SELECT "posts". * From "posts" ActiveRecord :: StatementInvalid : SQLite3 :: SQLException : 해당 테이블이 없습니다. posts : SELECT "posts". * FROM "posts" – Hamza1510

+0

자습서에서 레일을 학습하는 것보다 경로를 만드는 것이 더 많은 것처럼 보입니다. 레일을 배우려는 경우 https://www.youtube.com/watch?v=nRyUn7D8zCc을 권하고 싶습니다. 처음 몇 개의 비디오는 설치와 기본에 관한 내용이지만, 지금 어디에서 왔는지 대략 알고 싶으면 4 부로 건너 뜁니다. 그러나 Ruby를 처음 사용하는 경우 기본 사항을 검토하는 것이 좋습니다. – Glyoko

+0

나는 그것을 얻었고, 나를 위해 그것을 정리해 주셔서 감사합니다. 난 그냥 모델 게시물 제목을 생성 레일을 실행 : 콘텐츠 : 및 데이터베이스를 마이 그 레이션. 지금 나는 다시 궤도에있다, 고마워! – Hamza1510