11991


<http://dotinstall.com/lessons/basic_rails_v2/24923>

ドットインストールでのTaskAppを学習していたところ、  
プロジェクト内で、Taskを追加していく処理ができなくてつまずいています。

[code]

    class TasksController < ApplicationController 
      def create 
        @projerct = Project.find(params[:project_id]) 
        @task = @project.tasks.create(task_params) 
        redirect_to project_path(@project.id) 
      end 
    
      private 
    
      def task_pramas 
        params[:task].permit(:titele) 
      end 
    end 
    
[/code]

![エラー画面](https://i.stack.imgur.com/LcckA.png)

上記のような処理をし、このようなエラメッセージが出ます。  
なんども見直し、写経しましたが、原因がわかりません。

よろしくお願いします。


CC BY-SA 3.0
2015-07-03T07:54:11.127
11990
2015-07-03T08:08:43.107
2015-07-03T08:08:43.107
85
9988
question
ruby-on-rails
ドットインストール Rails：TaskContlloerが生成できない


`@projerct =`の部分がtypoしています。  
スペルを修正してください。

## 参考

Rubyは以下のような言語仕様があります。

<http://docs.ruby-lang.org/ja/2.0.0/doc/spec=2fvariables.html>

> `@'で始まる変数はインスタンス変数であり、特定の オブジェクトに所属しています。インスタンス変数はそのクラスま
> たはサブクラスのメソッドから参照できます。 **初期化されていない インスタンス変数を参照した時の値はnilです。**

typoしていた`@projerct`は初期化されていますが、正しいスペルの`@project`は初期化されていなかったので`nil`となり、`nil`に対して`tasks`メソッドを呼びだしたので、質問のようなエラーが発生しています。

今後も「うっかり」やってしまう可能性があるので、注意してくださいね。


CC BY-SA 3.0
2015-07-03T08:00:42.127
11991
2015-07-03T08:00:42.127
85
11990
answer