我正在尝试从任务表单的隐藏字段中的会话中传递项目 ID,以便在创建任务时,它具有分配给它的项目的 ID。我以前做得很好,甚至尝试复制我在它工作时使用的代码,但是更改名称并且无论我做什么我都会遇到错误 - 如果有人可以帮助指出我要去哪里错了,不胜感激,谢谢!
我使用此配置遇到的错误是:“未知属性:project_id”
查看代码(任务/_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'