我有一组称为任务和帖子的资源,并且存在has_and_belongs_to_many(HABTM)关系。Ruby/Rails - 检查子对象是否存在于HABTM关系记录中
还有一个连接表连接它们的值。
create_table 'posts_tasks', :id => false do |t|
t.column :post_id, :integer
t.column :task_id, :integer
end
所以我的问题是如何检查特定任务的ID是否存在于从@ post.tasks创建的数组中?
irb(main):011:0> @post = Post.find(1)
=> #<Post id: 2, comment: "blah blah", created_at: "2011-10-18 03:40:30", updated_at:
irb(main):012:0> @post.tasks
=> [#<Task id: 1, description: "Test 1", created_at: "2011-10-18 03:
22:05", updated_at: "2011-10-18 03:22:05">, #<Task id: 3, description: "Test 3",
created_at: "2011-10-18 03:22:21", updated_at: "2011-10-18 03:22:21
">]
所以我的问题是什么写作的红宝石的方式做“@task = Task.find(2)”内部存在@ post.tasks如果这样返回true或false?
只是想指出,这不一定是最好的答案。做到这一点的正确方法取决于你已经加载的数据以及你打算询问的未来问题。数据库查询很贵!尽量减少它们。 – GabeIsman