【发布时间】:2009-09-20 22:42:11
【问题描述】:
我正在构建一个简单的图书借阅应用程序。我需要做的一件事是确定一本书是否已签出。我通过 book_check_out 类设置了我的人员和书籍类之间的关联。我的目标是使用 book 的 checked_out 属性来确定当前是否已签出一本书。但是,在我目前的实现中,当一本书没有被签出并且我参考 book.checked_out.XXX 时,我收到错误“你没有预料到它有一个 nil 对象!”我的目标是在某些视图中将 book.checked_out 用于两个目的表明是的,该书已签出,而在其他视图中则显示当前签出给谁。
class Person < ActiveRecord::Base
has_many :book_check_outs
has_many :books, :through => :book_check_outs
end
class Book < ActiveRecord::Base
has_many :book_check_outs
has_many :people, :through => :book_check_outs
def checked_out
book_check_outs || false
end
end
class BookCheckOut < ActiveRecord::Base
belongs_to :book
belongs_to :person
end
【问题讨论】:
标签: ruby-on-rails null belongs-to has-and-belongs-to-many has-one