[rspec-users] Design Pattern proposal for better Rails development

Ashley Moran ashley.moran at patchspace.co.uk
Wed Nov 5 11:25:31 EST 2008

On 5 Nov 2008, at 14:28, Fernando Perez wrote:

>> Hmmm, could you make a helper module and mix that into all three
>> controllers?  Then there'd be just one place to change it.
> Can you be more descriptive?

Well I was just thinking out loud really.  Something like

module SubscriptionStuff
   def subscriptions

class MyController
   include SubscriptionStuff

   def show


I'm not saying that's a good idea though, it was just my first  
reaction to your description.

> Let's say I have:
> def show
>  Subscription.find_if_purchased
>  ...
> end
> def update
>  Subscription.find_if_purchased
>  ...
> end
> Now if I change the method name to find_if_subscribed in the model,  
> then
> necessarily I will have to change it twice in my controller, well I
> could use a before_filter, but what if the method is also called in
> other controllers? That's the main problem. How would you do that?

Find and replace has never bothered me.  If I had something that had a  
potentially conflicting name, I'd redefine the old method to raise an  
error and run the specs again.  But I've never needed to do this.



More information about the rspec-users mailing list