2017-01-18 9 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

まずこれは、あなたが既にデータベースを持っている場合は、移行を実行し、今db/migrate

app/models/post.rbとmigratiuonファイルを作成し、

rails generate model Post title:string text:text

をコマンドを使用してモデルPostを作成します。

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:このようなテーブルはありません。 * FROM "posts" – Hamza1510

+0

あなたのチュートリアルは、レール全体を学習するよりもルートを作成する方法のようです。レールを習得しようとしている場合は、https://www.youtube.com/watch?v=nRyUn7D8zCcをお勧めします。最初のカップルのビデオはインストールと基本についてですが、現在の場所から大まかに選びたい場合は、第4部に進んでください。あなたがRubyを初めて使うなら、基本を見直すことをお勧めします。 – Glyoko

+0

私は今、それをクリアしてくれてありがとう。私はちょうどレールをモデルポストタイトル:コンテンツを生成して実行し、データベースを移行しました。今私は再び軌道に乗っています、ありがとう! – Hamza1510

関連する問題