我有一组被称为Tasks和Posts的资源,它们之间存在has_and_belongs_to_many (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
">]
所以我的问题是,用Ruby写“@task = Task.find(2)”是否存在于@post.tasks中,如果存在则返回true或false的方式是什么?
n
个任务,则会进行n
次查询。但仍然比被接受的答案要好。 - Amir Raminfartask_ids
数组。 - Chirantan