Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- user.profile_name #=> should return "user#{user.id}" if nil
- # model User.rb
- def get_identifier
- profile_name ? profile_name : "user#{id}"
- end
- id, user = params[:identifier], nil
- if id[0..3] == "user"
- user = User.find_by_id(id[3..-1].to_num)
- else
- user = User.find_by profile_name: id
- class User
- def self.find_by_profile_name(profile_name)
- where(profile_name: profile_name).first || find_by_default_profile_name(profile_name)
- end
- def self.find_by_default_profile_name(profile_name)
- where(id: DefaultProfileName.from_profile_name(profile_name).id)
- end
- end
- class DefaultProfileName
- attr_accessor :id
- def self.from_profile_name(profile_name)
- new(profile_name.sub('user', ''))
- end
- def initialize(id)
- self.id = id
- end
- def to_s
- "user#{id}"
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement