vin*_*boy 1 activerecord ruby-on-rails
我有这个
class Student
has_many :assignments
end
class Assignment
belongs_to :student
belongs_to :book
end
class Book
has_many :assignments
end
Run Code Online (Sandbox Code Playgroud)
为了找到学生的“哈利波特”作业,我这样做
@student.assignments.find_by_book_id(Book.find_by_name('Harry Potter'))
Run Code Online (Sandbox Code Playgroud)
有没有办法让它成为Student模型的 has_one 关联?
像这样的东西(这里是伪代码)
class Student
has_many :assignments
has_one :harry_potter_assigment, -> { where book_id: Book.find_by_name('Harry Potter') }, class: 'Assignment'
end
Run Code Online (Sandbox Code Playgroud)
如果没有,有has_one什么更好的方法?
如果我没有错,以下应该有效
#student.rb
class Student
has_many :assignments
has_one :harry_potter_assigment, -> { where(book_id: Book.find_by_name('Harry Potter').id }, class_name: "Assignment"
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4461 次 |
| 最近记录: |