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!