1

これは私のモデルです:

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

コントローラ アクションを呼び出すコード:

$.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)

その日付を日時フィールドのデータベースに保存しています。

何か案は?

4

2 に答える 2

1

予定コントローラーの作成アクションの場合は、次のようになります。

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

作成アクションで

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
于 2013-09-13T05:11:02.573 に答える
1

make と ajax 呼び出しを行うと、次のような変数にアクセスできます。

params[:appointment_date]
params[:doctor_id]
params[:user_id]

そしてそうではない

params[:data][:appointment_date]
params[:data][:doctor_id]
params[:data][:user_id]

params[:data] と呼ばれるものがなかったため、nil クラス エラーが発生しました。

于 2013-09-13T04:34:35.530 に答える