class CampaignsController < ApplicationController before_action :set_campaign, only: [:show, :edit, :update, :destroy] # GET /campaigns def index @campaigns = Campaign.all end # GET /campaigns/1 def show end # GET /campaigns/new def new @campaign = Campaign.new @campaign.videolistings.build end # GET /campaigns/1/edit def edit end # POST /campaigns def create @campaign = Campaign.new campaign_params if @campaign.save respond_to do |format| format.json { render json: @campaign } format.html { redirect_to @campaign, notice: 'Campaign was successfully created.' } end else render action: 'new' end end # PATCH/PUT /campaigns/1 def update if @campaign.update(campaign_params) redirect_to @campaign, notice: 'Campaign was successfully updated.' else render action: 'edit' end end # DELETE /campaigns/1 def destroy @campaign.destroy redirect_to campaigns_url, notice: 'Campaign was successfully destroyed.' end private # Use callbacks to share common setup or constraints between actions. def set_campaign @campaign = Campaign.find_by_clientid(params[:clientid]) || not_found end # Only allow a trusted parameter "white list" through. def campaign_params params.require(:campaign).permit(:id, :clientid, :listingcode, :billingcode, :advertisername, :address1, :address2, :city, :state, :zip, :emailaddress, :customerfirstname, :customerlastname, :salesrep, :salesrepemail, :businessphone, :contactphone, :websiteurl, videolistings_attributes: [:id, :videocode, :producttypeid, :remoteassetsarchive, :voiceoverselection, :musicselection, :clientprovidedscript, :keywords, :focus, :notes, :asseturls,]) end def not_found raise ActionController::RoutingError.new("Not Found by clientid") end end