【发布时间】:2015-08-29 02:06:53
【问题描述】:
我有一个带有channel 列的Campaign 模型。这个channel 将存储一个serialized 通过复选框选择的结果数组。
这是模型..
app/models/campaign.rb
class Campaign < ActiveRecord::Base
serialize :channels, Array
end
app/controllers/compaigns_controller.rb
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
zip = Uploadzip.find(params[:uploadzip_id])
zip.campaign = @campaign
zip.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(:program, :uploadzip, :channel, :plan, :uploadpdfs).find(params[:id])
end
private
def campaign_params
params.require(:campaign).permit(:name, :comment, :channel, :plan_id, :program_id, :campaign_id, uploadpdf_ids: [])
end
end
带有复选框的表单部分..
观看次数/广告系列/_target.rb
<%= form_for @campaign, url: {action: "create"} do |f| %>
...
<label class="right-inline">
<%= f.label :channel, "Distribution Channel", class: "right-label" %>
</label>
<ul class="channel-list">
<% ["Folder", "Fax", "Email"].each do |channel| %>
<li><%= check_box_tag :channel, channel %> <%= channel %>
<% end %></li>
</ul>
...
<% end %>
我在将这些结果保存在 Campaign 对象中时遇到问题。
非常感谢任何帮助。
【问题讨论】:
-
首先我认为你
each循环是错误的。在每个循环中,您创建一个<li>,而您只有一个</li>退出循环。
标签: ruby-on-rails ruby ruby-on-rails-4 checkbox form-helpers