Rails 5 has_many和belongs_to:如何获取顶级ID

时间:2018-07-23 22:58:43

标签: ruby-on-rails activerecord ruby-on-rails-5

针对以下内容:

class Author < ApplicationRecord
  has_many :books
end


class Book < ApplicationRecord
  belongs_to :author
end

如果我有电话:

book.author.method1

在method1中是否可以获取书ID(或任何对象的数据)? (无需将其作为参数传递)

2 个答案:

答案 0 :(得分:0)

我认为您不能不通过而访问父模型中的子ID,因为它是has_many关系。似乎您必须执行以下操作:

book.author.method1(book.id)

当然,您也可以传递整个对象。

根据方法的不同,也许它更适合书籍模型?

答案 1 :(得分:0)

根据评论进行了重新思考。

author = book.author
author.method1(book)

这比我的清洁得多。

(感谢您的反馈/意见)