Требуемый внешний ключ сохраняется как ноль - PullRequest
0 голосов
/ 29 марта 2011

У меня есть приложение Rails с объектами моделей "Datapoint" и "Dataset" . Наборы данных передаются точкам данных.

Модели / dataset.rb:

# Table name: datasets
#
#  id         :integer         not null, primary key
#  name       :string(255)
#  created_at :datetime
#  updated_at :datetime

class Dataset < ActiveRecord::Base
  belongs_to :user
  validates :name, :presence => true
end

Модели / datapoint.rb:

# Table name: datapoints
#
#  id         :integer         not null, primary key
#  dataset    :integer
#  date       :date
#  value      :float
#  created_at :datetime
#  updated_at :datetime

class Datapoint < ActiveRecord::Base
  belongs_to :dataset
  validates :date, :presence => true
  validates :dataset, :presence => true
  validates :value, :presence => true
end

Мои контроллеры / datapoints_controller.rb успешно сохраняют записи точек данных:

class DatapointsController < ApplicationController
  def create
    @datapoint = Datapoint.new(params[:datapoint])
    @datapoint.dataset = Dataset.find(current_user.dataset)
    if @datapoint.save
      redirect_to root_path
    else
    end  
  end
end

Однако, когда я просматриваю свою базу данных, поле набора данных для каждой записи точки данных (которая является обязательным внешним ключом) пусто. Как это возможно?

1 Ответ

1 голос
/ 29 марта 2011

Выглядит как неудачная миграция (неправильное имя поля для внешнего ключа):

# Table name: datapoints
#  dataset    :integer <<<< This should be dataset_id
#  date       :date
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...