Rails - 在隐藏字段中传递会话信息 - 获取错误

时间:2012-07-02 10:40:35

标签: ruby-on-rails session hidden-field

我正在尝试从任务表单上的隐藏字段中的会话传递项目ID,以便在创建任务时,它具有分配给它的项目的ID。我之前做过这个很好,甚至尝试复制我工作时使用的代码,但更改名称,无论我做什么我都会收到错误 - 如果有人能指出我要去哪里错了,非常感谢,谢谢!

我在这个配置中遇到的错误是:“unknown attribute: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'

1 个答案:

答案 0 :(得分:0)

任务模型是否有project_id列?