Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Ruby

A select_tag is not saving associated child-object

I have a form with a select_tag and options_from_collection_for_select that I can't seem to get to pass. The parent object, Campaign, saves but does not associate with the child-object Uploadzip.

Campaign has_one Uploadzip Uploadzip belongs_to Campaign

There's also the campaign_id foreign_key on the Uploadzips table.

Here's my Campaign controller:

class CampaignsController < ApplicationController
    def index
      @campaigns = Campaign.all.order("created_at DESC")
    end

    def new
      @campaign = Campaign.new
    end

    def create
      @campaign = Campaign.new(campaign_params)

      if @campaign.save
        flash[:success] = "Campaign Successfully Launched!"
        redirect_to @campaign
      else
        flash[:error] = "There was a problem launching your Campaign."
        redirect_to new_campaign_path
      end
    end

    def show
      @campaign = Campaign.includes(:uploadzip,
:uploadpdfs).find(params[:id])
    end

  private

    def campaign_params
      params.require(:campaign).permit(:name, :comment, :campaign_id,
uploadpdf_ids: [])
    end
end

....and the form...

<%= form_for @campaign, url: {action: "create"} do |f| %>

    .....some typical fields..

    <%= f.label :data_file, class: "right-label" %>

    <%= select_tag "uploadzip[campaign_id]",
                options_from_collection_for_select(
                Uploadzip.all, :id, :file_name
                ), { include_blank: "Include a Zip File" } %>

    .....some more typical fields

<% end %>

Any help would be highly appreciated!