Ruby on Rails Saturday, December 1, 2012

Working on Rails Engine.

I want to make the controllers customizable whereever the Rails Engine is used.

Therefore, I was trying to use `extend ActiveSupport::Concern` on the Engine controller class and include it in MyRailsApp.


# code in my rails engine

moduel MyEngine
  class SomeController
    extend ActiveSupport::Concern
  
    def engine_some_method
    end
  end
end


# code in my rails app where engine is implemented

class SomeController
  include MyEngine::SomeController

  def app_some_method
  end

  # code that's available by including the Rails Engine code
  # def engine_some_method
  # end
end

But, this breaks my rpsec controller tests because of an undefined "recycle" method.

12) Qe::Admin::QuestionPagesController POST reorder
     Failure/Error: xhr :post, :create,
     NoMethodError:
       undefined method `recycle!' for #<Qe::Admin::QuestionPagesController:0x007f80aa1c7528>
     # ./spec/controllers/admin/pages_controller_spec.rb:69:in `block (2 levels) in <top (required)>'

When I comment out the "include MyEngine::Controller" everything passes.

Why?

--
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+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/ViCnX2HqSPkJ.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

No comments:

Post a Comment