Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes #115.
In Rails 3.2, ActiveRecord::FinderMethods#take does not exist ( added since Rails 4.0 http://apidock.com/rails/ActiveRecord/FinderMethods/take ), and ActiveRecord::Relation#take is processed as 'to_a.take' ( https://github.com/rails/rails/blob/3-2-stable/activerecord/lib/active_record/relation/delegation.rb#L40 ).
Array#take requires 1 argument ( https://ruby-doc.org/core-2.2.0/Array.html#method-i-take ), but no arguments are passed in SeedFu::Seeder#find_or_initialize_record, so ArgumentError is raised.
I have 3 ideas to fix this issue.
take
tofirst
.take(1).first
instead oftake
.limit(1).to_a.first
instead oftake
.I choose No. 3 because the SQL is same in Rails 3.2 and 4.0. And I also consider Pull #89.
If implicit order of ActiveRecord::FinderMethods#first (>= Rails 4.0) can be ignored, I think No. 1 may be better because it is easy to read.