0

タスクフォームの非表示フィールドにあるセッションからプロジェクトIDを渡そうとしているので、タスクが作成されたときに、割り当てられているプロジェクトのIDが含まれます。私はこれをうまくやったことがあり、それが機能したときに使用したコードをコピーしようとしましたが、名前を変更すると、何をしてもエラーが発生します-誰かが私がどこに行くのかを指摘するのを手伝ってくれるなら間違って、それは大いにありがたいです、ありがとう!

この構成で発生するエラーは次のとおりです:「不明な属性:project_id」

コードの表示(tasks / _form):

<%= form_for(@task) do |f| %>
  <div class="field">
  <%= f.hidden_field :project_id, :value => session[:project_id] %>
  </div>
...
<% end %>

モデルコード(タスク):

attr_accessible :project_id

belongs_to :project

コントローラーコード(tasks_controller):

def new
  @task = Task.new
  @project_id = session[:project_id]

  respond_to do |format|
    format.html # new.html.erb
    format.json { render json: @task }
  end
end

def create
  project_id = session[:project_id]
  @task = Task.new(params[:task])

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

これがアプリケーショントレースです-これは46行目を指しています。これは、私のコードでは、作成アクションの「@task = Task.new(params [:task])」行です...?

app/controllers/tasks_controller.rb:46:in `new'
app/controllers/tasks_controller.rb:46:in `create'
4

1 に答える 1

0

タスクモデルにはproject_id列がありますか?

于 2012-07-02T11:16:54.123 に答える