Rails 4 find or create by method doesn't work

Please take a look at this answer.

What used to be

@company = Company.find_or_create_by_name(name)

in Rails 4 is now

@company = Company.find_or_create_by(name: name)

Another way to do this in Rails 4 would be:

@company = Company.where(name: name).first_or_create

Company.find_or_create_by(name: name)

It should work out of the box. Only thing that can prevent it from creating record is validation errors.

Try this in rails console to check if its working or not. And check the validation errors as well.

name = "YOUR TEXT FOR NAME ATTRIBUTE"
c = Company.find_or_create_by(name: name)
puts c.errors.full_messages