Объект отказывается сохранять изменения в Rails IRB
-
27-09-2019 - |
Вопрос
Всем доброе утро,
У меня есть ассоциация, над которой я работаю, и по какой-то причине я не могу получить его, чтобы сохранить изменения в вопросе объекта, когда я отладку в IRB. Мне было интересно, может ли кто-нибудь указать на мою проблему.
Вот ассоциация:
class User < ActiveRecord::Base
has_and_belongs_to_many :affiliates
has_one :managed_affiliate, :class_name => "Affiliate", :foreign_key => "manager_id"
end
class Affiliate < ActiveRecord::Base
has_and_belongs_to_many :users
belongs_to :manager, :class_name => "User"
#The affiliates table has a foreign key field of manager_id
end
Когда я уволяю IRB, я могу взять пользователь. Произойти и партнер. Зажимание. Я могу установить управление пользователями пользователя просто в порядке. Однако, когда я сохраняю, что вообще не отражается в партнерстве - не имеет менеджера. Аналогично, я могу установить менеджер партнера просто отлично (Affiliate.first.manager = user.first). Он возвращается, как все в порядке, но когда я пойду, чтобы спасти это просто возвращает «ложь». Если я активирую функцию регистрации IRB, это вывод:
SQL (0.1ms) BEGIN
SQL (0.2ms) ROLLBACK
Есть ли очевидная причина, почему эта ассоциация не сэкономит должным образом?
Кроме того, вот схема для таблицы филиалов:
create_table "affiliates", :force => true do |t|
t.string "name"
t.string "website"
t.integer "market_id"
t.datetime "created_at"
t.datetime "updated_at"
t.string "logo_file_name"
t.string "logo_content_type"
t.integer "logo_file_size"
t.boolean "track_subs"
t.integer "manager_id"
end
Спасибо за любую помощь.
Решение
ActiveRecord::Base#save
вернет ложь, если валидация не удается или если таковые имеются before_*
Обратные вызовы на модели возвращаются ложь.