Now there is only one non-REST method inside of NewsController
left. Today, using move method, I refactored #preview
to move it to the dedicated PreviewsController
.
Before
1
2
3
4
5
6
7
8
9
10
11
|
class NewsController [:new, :create, :index, :preview]
before_filter :find_project_from_association, :except => [:new, :create, :index, :preview]
before_filter :find_project, :only => [:new, :create, :preview]
before_filter :authorize, :except => [:index, :preview]
before_filter :find_optional_project, :only => :index
def preview
@text = (params[:news] ? params[:news][:description] : nil)
render :partial => 'common/preview'
end
end |
class NewsController [:new, :create, :index, :preview]
before_filter :find_project_from_association, :except => [:new, :create, :index, :preview]
before_filter :find_project, :only => [:new, :create, :preview]
before_filter :authorize, :except => [:index, :preview]
before_filter :find_optional_project, :only => :index
def preview
@text = (params[:news] ? params[:news][:description] : nil)
render :partial => 'common/preview'
end
end
1
2
3
|
class PreviewsController < ApplicationController
# ...
end |
class PreviewsController < ApplicationController
# ...
end
After
1
2
3
4
5
6
7
8
|
class NewsController [:new, :create, :index]
before_filter :find_project_from_association, :except => [:new, :create, :index]
before_filter :find_project, :only => [:new, :create]
before_filter :authorize, :except => [:index]
before_filter :find_optional_project, :only => :index
# No more preview action
end |
class NewsController [:new, :create, :index]
before_filter :find_project_from_association, :except => [:new, :create, :index]
before_filter :find_project, :only => [:new, :create]
before_filter :authorize, :except => [:index]
before_filter :find_optional_project, :only => :index
# No more preview action
end
1
2
3
|
class PreviewsController 'common/preview'
end
end |
class PreviewsController 'common/preview'
end
end
Now that the NewsController
actions have been refactored, it’s time to convert the controller into to a full REST resource. This should be easy since I’ve added extra routing tests as I’ve been refactoring.
With refactoring, strong tests are your safety net in case something goes wrong.
Reference commit