ruby on rails - Can't use `find_by` method while `where` works in ActiveRecord::Base -



ruby on rails - Can't use `find_by` method while `where` works in ActiveRecord::Base -

i have method this, works fine.

class user < activerecord::base def self.find_or_create_from_twitter_id(twitter_id) user = where(twitter_id: twitter_id).first user ||= create_from_twitter_id(twitter_id) end end

then changed where(...).first find_by, because thought 2 look same.

def self.find_or_create_from_twitter_id(twitter_id) user = find_by(twitter_id: twitter_id) user ||= create_from_twitter_id(twitter_id) end

but undefined method `find_by' #<class:0x007fbb2b674970> error when seek create user.

i have no thought why find_by doesn't work here. i'll grateful if tell me wrong.

find_by method introduced in rails 4. if you're using rails 3.x or lesser version use: find_by_<attribute_name> instead:

find_by_twitter_id(twitter_id)

but, there's method find , create attributes passed it, can utilize if fits needs:

find_or_create_by_twitter_id(twitter_id)

ruby-on-rails activerecord

Comments

Popular posts from this blog

maven fortify plugin : Unable to load build session with ID XXXXX .. See log file for more details -

c# - Primavera WebServices does not return any data -

android - Display emoji panel with genymotion - keyboard/touch input? -