Поля объектов активной записи, сохраняемые как нулевые в БД - PullRequest
0 голосов
/ 15 октября 2011

Я создал класс "ClassA", который расширяет ActiveRecord. Я добавил поле "текст" с помощью db: migrate. В моем контроллере я звоню:

class_a_instance = ClassA.new(:text => "bite me")
puts class_a_instance.text
class_a_instance.inspect
class_a_instance.save

Первые две строки в порядке. Новый класс А создается с текстом «укуси меня». Команда put работает. Однако при вызове inspect текстовое поле печатается как ноль. Операция сохранения также фиксируется в базе данных с текстовым полем как нулевым. class_a_instance определяется как локальная переменная внутри другого класса (ClassUser).

Schema.rb для class_a

   ActiveRecord::Schema.define(:version => 20111013231426) do
   create_table "class_as", :force => true do |t|
     t.string   "text"
     t.datetime "created_at"
     t.datetime "updated_at"
     t.integer  "num_users"
     t.integer  "num_events"
     t.integer  "num_events_completed"
   end

Использование драйвера MySQL2. Рубин 1.9. Рельсы 3.1. Я изучаю рельсы всего 3 недели, поэтому ошибка может быть очень простой. (ранее Java-программист)

Спасибо!

1 Ответ

0 голосов
/ 15 октября 2011

class_a_instance определяется как локальная переменная внутри другого класса (ClassUser)

подождите, вы пытаетесь сказать, что ClassUser имеет_one или has_many ClassA's?

Я думаю, тебе нужна связь. Сначала добавьте целое число class_user_id в схему для class_as, а затем поместите отношения в классы:

в ClassUser: has_one или has_many

в ClassA: belongs_to ClassUser

Есть много ресурсов, чтобы помочь, Google для "учебника отношений рельсов"

...