title: A spelling, expected to be equivalent, causes error. Why?
body: <p>I'm reading <a href="https://stackoverflow.com/questions/1961030/ruby-ampersand-colon-shortcut">this question</a>, where it says, that the calls</p>
  
  <pre><code>something {|i| i.foo }
  something(&amp;:foo)
  </code></pre>
  
  <p>are equivalent.</p>
  
  <p>Now I was trying to refactor my model named <code>AdminUser</code> according to this pattern and replaced</p>
  
  <pre><code>after_create { |admin| admin.send_reset_password_instructions }
  </code></pre>
  
  <p>with</p>
  
  <pre><code>after_create(&amp;:send_reset_password_instructions)
  </code></pre>
  
  <p>, but when I'm running my migration, which contains the lines</p>
  
  <pre><code>def migrate(direction)
    super
    # Create a default user
    AdminUser.create!(email: 'a@b.de', password: 'very_clever', password_confirmation: 'very_clever') if direction == :up
  end
  </code></pre>
  
  <p>it gives me the error</p>
  
  <pre><code>ArgumentError: no receiver given
  </code></pre>
  
  <p>pointing to the line <code>AdminUser.create!...</code>.</p>
  
  <p>Can anyone tell me what goes wrong here?</p>