2012-05-12 8 views
0

Jobsフォームでnewを押すと、JobsControllerで「作成」が見つかりませんでした。ここで私のコントローラにない「作成」アクションについて、Railsが私にエラーを出すのはなぜですか?

Unknown action 

The action 'create' could not be found for JobsController 

」私のコントローラ:

class JobsController < ApplicationController 

    private 
    def load_clients 
     @clients = collection_select :client, :client_id 
    end 

    def index 
    @job = Job.find(:all) 

    respond_to do |format| 
     format.html # index.html.erb 
     format.xml { render :xml => @job } 
    end 
    end 

    def create 
    @job = Job.new(params[:job]) 

    respond_to do |format| 
     if @job.save 
     format.html { redirect_to @job, notice: 'Job was successfully created.' } 
     format.json { render json: @job, status: :created, location: @job } 
     else 
     format.html { render action: "new" } 
     format.json { render json: @job.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

    def show 
    @job = Job.find(params[:id]) 

    respond_to do |format| 
     format.html # show.html.erb 
     format.json { render json: @job } 
    end 
    end 
end 

あなたが見ることができるように。それは明らかにそこにある。なぜRailsはそれを見ないのですか?

答えて

5

これは、createメソッドをprivateとして割り当てるためです。

コントローラをこのように再定義してみてください。ここで

」私のコントローラ:

class JobsController < ApplicationController 

    def index 
    ... 
    end 

    def create 
    ... 
    end 

    def show 
    ... 
    end 

    private 

    def load_clients 
    @clients = collection_select :client, :client_id 
    end 

end 
関連する問題