Something I\'ve always wondered about rails is the ability to pass extra data to find_or_create methods in rails. For example, I can\'t do the following
User
With rails 4.x
DEPRECATION WARNING: This dynamic method is deprecated. Please use e.g. Post.find_or_create_by(name: 'foo') instead
Use this
User.find_or_create_by(first_name: 'Scarlett') do |user|
user.last_name = 'Johansson'
end
Try this:
User.find_or_create_by_name(:name=>'ceilingfish',
:email => 'an_email@a.domain', :legs => true, :face => false)
When you have additional parameters to find_or_create_by_
, you have to pass all the parameters as a hash.
User.create_with(
email: 'an_email@a.domain',
legs: true, face:false
).find_or_create_by(:name=>'ceilingfish')