justinleveck
6/9/2013 - 5:49 PM

create_shout.rb

class TextShoutsController < ApplicationController
  include Concerns::CreateShout

  private

  def build_content
    TextShout.new(text_shout_parameters)
  end

  def text_shout_parameters
    params.require(:text_shout).permit(:body)
  end
end
class PhotoShoutsController < ApplicationController
  include Concerns::CreateShout

  private

  def build_content
    PhotoShout.new(photo_shout_parameters)
  end

  def photo_shout_parameters
    params.require(:photo_shout).permit(:image)
  end
end
#models / concerns / create_shout.rb

module Concerns
  module CreateShout
	extend ActiveSupport::Concern

	  def create
	    content = build_content
	    shout = current_user.shouts.build(content: content)
	    shout.save
	    if shout.save
	      redirect_to dashboard_path
	    else
	        flash.alert = "Could not shout"
	        redirect_to dashboard_path
	    end
	  end

	end
end