所以我有这个数据结构:
+[#<Folder id: 1, name: "mollitia", parent_id: nil, user_id: 1, created_at: "2014-06-27 16:00:59", updated_at: "2014-06-27 16:00:59">,
+ #<Folder id: 2, name: "porro", parent_id: 1, user_id: 1, created_at: "2014-06-27 16:00:59", updated_at: "2014-06-27 16:00:59">,
+ #<Folder id: 3, name: "omnis", parent_id: 2, user_id: 1, created_at: "2014-06-27 16:00:59", updated_at: "2014-06-27 16:00:59">]
Run Code Online (Sandbox Code Playgroud)
self.ancestors
我可以把它的名字归还吗?
def pwd
self.ancestors.pluck(:name)
end
Run Code Online (Sandbox Code Playgroud)
以上结果
undefined method `pluck' for #<Array:0x007ff4da780290>
Run Code Online (Sandbox Code Playgroud)
更新
令人敬畏的结构打印:
[
[0] #<Folder:0x007fd2946a5f18> {
:id => 3,
:name => "blanditiis",
:parent_id => 2,
:user_id => 1,
:created_at => Fri, 27 Jun 2014 18:04:02 UTC +00:00,
:updated_at => Fri, 27 Jun 2014 18:04:02 UTC +00:00
},
[1] #<Folder:0x007fd2946ad1c8> {
:id => 2,
:name => "neque",
:parent_id => 1,
:user_id => 1,
:created_at => Fri, 27 Jun 2014 18:04:02 UTC +00:00,
:updated_at => Fri, 27 Jun 2014 18:04:02 UTC +00:00
},
[2] #<Folder:0x007fd2946b80c8> {
:id => 1,
:name => "ut",
:parent_id => nil,
:user_id => 1,
:created_at => Fri, 27 Jun 2014 18:04:02 UTC +00:00,
:updated_at => Fri, 27 Jun 2014 18:04:02 UTC +00:00
}
]
Run Code Online (Sandbox Code Playgroud)
kdd*_*isz 18
pluck与rails一起使用以更改与数据库的关联查询.它会从改变SELECT *到SELECT [attr]哪里[attr]是采摘的说法.因为它是一个数组,所以你不能使用它.你应该使用map红宝石中的常规旧版本.在你的情况下,它看起来像:
def pwd
self.ancestors.map(&:name)
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8078 次 |
| 最近记录: |