I am running into a very odd problem. I have an ActiveRecord called Objective with a public create method. When this method is called in a controller the return value is a Hash instead of Objective. When I test the method in Rspec for the model it returns as Objective.
Does anyone have an idea about why the return type would be different and if so how to fix it so it always returns Objective? Code: class Objective < ActiveRecord::Base belongs_to :user has_many :next_actions, :order => 'id DESC', :conditions => {:completed => false} has_many :action_items, :order => 'position' has_many :progress_updates serialize :freq_value validates_presence_of :name, :due_date, :completion, :pr_u_frequency_id validates_numericality_of :completion, :only_integer => true, :greater_than_or_equal_to => 0, :less_than_or_equal_to => 100 def self.create(attributes, user_id) #create new record with user_id correctly set attributes.delete :freq_options #deletes this unused key obj = self.new(attributes) obj.user_id = user_id obj.save ? obj : nil end end class ObjectivesController < ApplicationController before_filter :require_user layout false def create objective = Objective.create(params[:objective], current_user.id) Rails.logger.info("****objective.class = #{objective.class}****") end end --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk@googlegroups.com To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---