【问题标题】:Form Helper Undefined Method表单助手未定义方法
【发布时间】:2013-11-20 06:06:35
【问题描述】:

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

tasks_controller.rb(控制器)

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(查看)

<%= 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(模型)

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

我该怎么办?

【问题讨论】:

    标签: ruby-on-rails


    【解决方案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
    

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

    【讨论】:

      【解决方案2】:

      您似乎有待处理的迁移(您的 schema.rb 中是否有 title)。

      其他注意事项:为@task 构建您的表单

      【讨论】:

        猜你喜欢
        • 2014-03-28
        • 2015-10-18
        • 2020-11-25
        • 2011-02-07
        • 2016-08-09
        • 1970-01-01
        • 2014-02-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多