表单助手未定义方法

时间:2013-11-20 06:06:35

标签: ruby-on-rails

当我尝试访问视图时,会返回错误:
#Task id的未定义方法'title':nil,created_at:nil,updated_at:nil

tasks_controller.rb(Controller)

class TasksController < ApplicationController
def new
    @task = Task.new
end


    def create
        @task = Task.new(params[:task])
        if @task.save
        redirect_to new_task_path
        end
    end 
end

/tasks/new.html.erb(View)

<%= form_for :task, url: tasks_path do |f| %>
  <p>
    <%= f.label :title %><br>
    <%= f.text_field :title %>
  </p>

  <p>
    <%= f.label :details %><br>
    <%= f.text_area :details %>
  </p>

  <p>
    <%= f.submit %>
  </p>
<% end %>

task.rb(Model)

class Task < ActiveRecord::Base
    belongs_to :user
    attr_accessible :title, :details, :user_id, :volunteers
end

我该怎么办?

2 个答案:

答案 0 :(得分:1)

看起来您有待处理的迁移(您的title中有schema.rb)。

其他说明:为@task

构建表单

答案 1 :(得分:1)

您尚未在数据库中定义字段,请参阅:

#Task id: nil, created_at: nil, updated_at: nil

那里没有标题也没有细节,请执行此操作:

rails g migration add_title_and_details_to_tasks title details

检查您的迁移文件是否正确创建了这两个字段。

然后运行rake db:migrate。下次记得使用以下字段生成资源:

rails g scaffold Task title details

这样,当你迁移你的字段时就会在那里。