ruby-on-rails - Rails DateTime - NoMethodError(未定义方法 `[]' 为 nil :NilClass)

标签 ruby-on-rails ruby database activerecord fullcalendar

这是我的模型:

class User < ActiveRecord::Base
has_many :appointments
has_many :doctors, :through => :appointments
end

class Doctor < ActiveRecord::Base
has_many :appointments
has_many :users, :through => :appointments
end

class Appointment < ActiveRecord::Base
belongs_to :doctor
belongs_to :user
end

调用 Controller Action 的代码:

$.ajax({
  type: "POST",
  url: "/create",
  data: {
    appointment_date: date,
    doctor_id: "1",
    user_id: "1"
  }

//等等 });

行动:

def create
    @appointment = Appointment.new(:appointment_date => params[:data][:appointment_date], 
        :hairdresser_id => params[:data][:doctor_id], :user_id => params[:data][:user_id])
    if @appointment.save
        flash[:success] = "Welcome!"
        redirect_to @user
    else
        alert("failure!")
    end
end

我得到了这个错误:

NoMethodError (undefined method `[]' for nil:NilClass)

我正在使用 FullCalendar 插件,它以这种格式获取日期:

Fri Sep 13 2013 12:00:50 GMT-0400 (EDT)

我将该日期保存到数据库的日期时间字段中。

有什么想法吗?

最佳答案

如果它是约会 Controller 的创建操作,那么它将是

$.ajax({
  type: "POST",
  url: "/appointments",
  data: {
    appointment_date: date,
    doctor_id: "1",
    user_id: "1"
  }

在创建 Action 中

def create
    @appointment = Appointment.new({:appointment_date => params['appointment_date'], 
        :hairdresser_id => params['doctor_id'], :user_id => params['user_id]'})
    if @appointment.save
        #YOUR CODE
    else
        #YOUR CODE
    end
end

关于ruby-on-rails - Rails DateTime - NoMethodError(未定义方法 `[]' 为 nil :NilClass),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18778062/

相关文章:

ruby - 我如何在 Rmagick 中快速做一些事情来测试它的工作

ruby-on-rails - ruby nokogiri gem 安装 mac osx high Sierra

sql - 列出数据库中的所有表

sql - 不同产品价格范围的数据库模型

java - 在数据库的 <div> 标签中显示换行符

ruby-on-rails - 处理重复的数据库条目

html - 使文本在 div 中可滚动

ruby-on-rails - 无法启动新的 Rails 项目

ruby - 为什么没有安装 Nokogiri?

ruby-on-rails - 在 Rails/PostGreSQL 中对大表进行分析