 <p>The API and all client libraries in turn will return actual objects when they are queried for. However, when referencing an object in the API you do so with just the object's ID. </p> <p>Therefore, in your code above, <code>workspace</code> holds the actual workspace object. In order to use that in a query you must use <code>workspace: workspace.id</code>. </p> <p>You can see a working example of <code>.find_by_workspace()</code> <a href="https://github.com/Asana/ruby-asana/blob/master/examples/personal_access_token.rb" rel="nofollow">here</a>:</p> <pre><code>puts "My Workspaces:" client.workspaces.find_all.each do |workspace| puts "\t* #{workspace.name} - tags:" client.tags.find_by_workspace(workspace: workspace.id).each do |tag| puts "\t\t- #{tag.name}" end end </code></pre>