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!

This list is for rails core issues, not user support. You want the rails talk list, where I note you already asked this and then said you had sorted it. Try again there, with a follow up to your original thread explaining the new problem. Also describe what you see in the log when you click submit and which bit of code you think should cause the save to happen.

Colin