2015-06-12 2 views
2

У меня есть аренда Модель:before_create не вызывается, когда объект, созданный

class Lease < Sequel::Model 
    def before_create 
     self.issued_date = DateTime.now 
     self.return_date = DateTime.now + 2.weeks 
     super 
    end 
end 

пользователя Модель:

class User < Sequel::Model 
    many_to_many :items, left_key: :user_id, right_key: :item_id, 
       join_table: :leases 
end 

и Артикул:

class Item < Sequel::Model 
    many_to_many :users, left_key: :item_id, right_key: :user_id, 
       join_table: :leases 
end 

Моя модель аренды имеет user_id и item_id как иностранный ключ.

Когда я создаю объект аренды, выпущенные_данные и return_date создаются и сохраняются в базе данных.

Но когда я назначаю пользователю элемент, объект аренды создается, но before_create не вызывается в результате выданных_данных и return_date, установленных в nil.

Помогите оценить очень.

+0

Можете ли вы описать немного больше, как присвоить 'user_id' и' 'item_id' в lease' модели? –

+0

Что такое 'many_to_many'? Вы имеете в виду 'has_and_belongs_to_many'? Или это происходит от какого-то драгоценного камня или вашего собственного кода? – nathanvda

+0

Я использую Sequel. https://github.com/jeremyevans/sequel @nathanvda –

ответ

0

вам необходимо установить ваш метод before_create так:

before_create :before_create_method 

def before_create_method 
    #method body 
end 
Смежные вопросы