This is the TransactionAttributes module TransactionAttributes
def success success end def success=(success) self.success = success end def errors errors end def errors=(errors) self.errors = errors end end The reason for these was i was trying to set a property on a returned object or the errors. I yet to figure out a way i can return a more descriptive error message from the transaction back to the controller. I'll fix the style note. That just happens to populate when using a tab trigger in Sublime. This is the table schema # == Schema Information # # Table name: resources # # id :integer not null, primary key # resource_name :string(255) # teacher_id :integer # student_id :integer # source_id :string(255) # created_at :datetime not null # updated_at :datetime not null # resource_type :string(255) # The SystemStackError - stack level too deep: actionpack (3.2.13) lib/action_dispatch/middleware/reloader.rb:70:in `' is the only thing i get in the console. This is whats returned in the response. SystemStackError at /resources ============================== > stack level too deep actionpack (3.2.13) lib/action_dispatch/middleware/reloader.rb, line 70 ----------------------------------------------------------------------- ``` ruby 65 response = @app.call(env) 66 response[2] = ActionDispatch::BodyProxy.new(response[2]) { cleanup! } 67 response 68 rescue Exception 69 cleanup! > 70 raise 71 end 72 73 def prepare! #:nodoc: 74 run_callbacks :prepare if validated? 75 end ``` App backtrace ------------- Full backtrace -------------- - actionpack (3.2.13) lib/action_dispatch/middleware/reloader.rb:70:in `' based on a SO i read it said to turn on the Rails.backtrace_cleaner.remove_silencers! so ive dont that. Is there something else i can do to that would be helpful? On Saturday, June 22, 2013 5:06:54 PM UTC-6, Bob O wrote: > > Im having an issue that seems to only happen when trying to use a > transaction. Ive used transactions many times in the past and Im at a loss > as to why im getting the stack level too deep problem. > > SystemStackError - stack level too deep: > actionpack (3.2.13) lib/action_dispatch/middleware/reloader.rb:70:in `' > > I have a StackOveflow with more detail - > http://stackoverflow.com/q/16930511/1408461 > > As stated in the SO. If I try to save the record to the database outside > the transaction it saves just fine. I only get the error in the > transaction. > > Params Object > > params => { > "resource"=> { > "resource_type"=>"document", > "resource_name"=>"My Rails Doc", > "source_id"=>"Dropbox" > }, > "resource_document"=> { > "resource_document"=> > #<ActionDispatch::Http::UploadedFile:0x007f8e919d06f8 > @content_type="text/plain", > @headers= "Content-Disposition: > form-data; name=\"resource_document[resource_document]\"; > filename=\"rails_local_env_setup.txt\"\r\n > Content-Type: text/plain\r\n", > @original_filename="rails_local_env_setup.txt", > @tempfile= > #<File:/var/folders/t4/lfmj7mhj52b2krryzh7dj4hh0000gn/T/RackMultipart20130604-29589-2c0seo>>}, > > "action"=>"create", > "controller"=>"resources" > } > > **Controller** > > def create > > if current_teacher > @resource = ResourceObject.create_teacher_resource(params, > current_teacher) > end > > if current_student > @resource = ResourceObject.create_student_resource(params, > current_student) > end > > if current_admin > @resource = Resource.new(params[:resource]) > end > > respond_to do |format| > if @resource.success > format.html { redirect_to @resource, notice: 'Resource was successfully > created.' } > format.json { render json: @resource, status: :created, location: > @resource } > else > format.html { render action: "new" } > format.json { render json: @resource.errors, status: > :unprocessable_entity } > end > endend > > **Transaction** > > class ResourceObject > > def self.create_teacher_resource(params, teacher) > begin > ActiveRecord::Base.transaction do > # Create Resource > @resource = Resource.new > @resource.resource_name = params[:resource][:resource_name] > @resource.resource_type = params[:resource][:resource_type] > @resource.source_id = params[:resource][:source_id] > @resource.teacher_id = teacher.id > @resource.save > > # Create Resource Document > @resource_document = ResourceDocument.new > @resource_document.resource_document = > params[:resource_document][:resource_document] > @resource_document.resource_id = @resource.id > @resource_document.save > > # TODO Add Commom Core Joins > # TODO Video Uploader > # TODO Image Uploader > > return @resource.success = "ok" > end > rescue Exception => e > # TODO Need to figure out how to pass exception message back to > controller > return @resource.errors > end > end > end > > end > > Resource Model > > class Resource < ActiveRecord::Base include TransactionAttributes > attr_accessible :resource_name, :resource_type, :source_id, :teacher_id, > :student_id, :success, :errors belongs_to :teacher, :class_name => > "Teacher", :foreign_key => "teacher_id" belongs_to :student, :class_name => > "Student", :foreign_key => "student_id" has_many :resource_documents # > has_many :resource_images # has_many :resource_videos # has_many > :question_resources # has_many :assignment_resources end > > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscr...@googlegroups.com. To post to this group, send email to rubyonrails-talk@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/ae915f25-9479-4366-bcee-3700c4184d28%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.