Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

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!