0

ジョブフォームで新規を押すと、ジョブコントローラーで「作成」が見つからないというエラーが表示されました。

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がそれを認識しないのはなぜですか?

4

1 に答える 1

5

これは、create メソッドをプライベートとして割り当てているためです。

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

これが私のコントローラーです:

class JobsController < ApplicationController

  def index
    ...
  end

  def create
    ...
  end

  def show
    ...
  end

  private

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

end
于 2012-05-12T14:37:56.683 に答える