0
的開始,我有以下前置元素到一個ActiveRecord關聯對象
@blogs = Blog.all
我想一個元素推到那個ActiveRecord的關係對象的開始。這不工作,因爲它會爲一個陣列:
@blogs.unshift(Blog.find(123))
如何預先記錄該activerecord關係對象內的記錄?
的開始,我有以下前置元素到一個ActiveRecord關聯對象
@blogs = Blog.all
我想一個元素推到那個ActiveRecord的關係對象的開始。這不工作,因爲它會爲一個陣列:
@blogs.unshift(Blog.find(123))
如何預先記錄該activerecord關係對象內的記錄?
嘗試類似:
@blogs = []
@blogs << Blog.find(123)
@blogs += Blog.where.not(id: 123)
注:@blogs
仍然是array object
不active record object
。
@blogs = Blog.all.to_a
@blogs.unshift(Blog.find(123))
應該是'@blogs + = Blog.where.not(ID:123)' – HenriTel
是可以做到這一點的方法還,但''<<這種方式推動元件以陣列是更加易讀和易於理解 –
'+ ='將連接給定數組,而'<<'將把給定數組推送到'@ blogs'。在你的解決方案中,你最終會得到類似'[blog1,[blog2,blog3]]'這很奇怪。 – HenriTel