我有一組稱爲任務和帖子的資源,並且存在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