【发布时间】:2020-08-18 10:22:33
【问题描述】:
我设置了以下关联:
class Book < ActiveRecord::Base
belongs_to :author
belongs_to :category
has_many :users_books
has_many :users, through: :user_books
end
和
class User < ActiveRecord::Base
has_many :users_books
has_many :books, through: :users_books
end
我按照我应该的方式创建了一个连接表迁移
class CreateUsersBooks < ActiveRecord::Migration[4.2]
def change
create_table :users_books do |t|
t.integer :user_id
t.integer :book_id
end
end
end
现在我需要创建一个名为 check_out_book 的方法,它接受一本书和一个到期日期作为参数。当用户签出一本书时,它应该创建一个新的 UserBook 记录(或 Checkout 记录或任何您想调用的连接表/模型)。那个新的 UserBook 记录应该有一个返回的属性(以及表列)?这应该默认为假。我将如何着手创建此方法和迁移?
【问题讨论】:
-
您的
users_books表也是模型还是只是表? -
将
due_date和returned列添加到表中。 -
感谢@AmitPatel!我将如何在该实例方法中创建 UserBook 的新记录?
-
@max 在下面的回答中解释了。
标签: ruby-on-rails ruby join activerecord migration