title: Ruby '.find' method only returning first occurrence
body: <p>I have models as follows: User has_many goals, Goal has_many tasks, Task has_many day_tasks. I'm trying to write a method which finds all day_tasks that</p>
  
  <ol>
  <li>belong to a certain user </li>
  <li>have <code>:target_date == Date.today</code> (target_date is a column in the day_tasks table). </li>
  </ol>
  
  <p>I want to put the results into the @day_tasks array.</p>
  
  <p>my code:</p>
  
  <pre><code>@user = current_user
  @day_tasks = DayTask.find { |x| x.task.goal.user == @user &amp;&amp; x.target_date == Date.today }
  </code></pre>
  
  <p>This code only returns the first record that matches these criteria. I've also tried using the  DayTasks.where method with the same code in the braces, but I just a "Wrong number of arguments ( 0 for 1 )" error. Could someone explain why my method only returns the first occurrence and what exactly the difference is between .find and .where?</p>